1.typeof 形如 var x = "xx"; typeof x == 'string' typeof(x);
返回類型有:'undefined' “string” 'number' 'boolean' 'function' 'object'
優(yōu)點:對空null的判斷 'undefined'的應(yīng)用
缺點:對于object類型不能細(xì)分是什么類型
2.instanceof 形如 var d = new String('test'); d instanceof String ==true;
返回的類型有:String Number Boolean Function Object Array Date
優(yōu)點:能區(qū)分出更細(xì)的類型如 Date Array 如 var num = 3; num instanceof Number 能返回具體的類型
缺點:直變量不能區(qū)分 必須采用new 的對象
3.constructor 形如:var x = []; x.constructor==Array;
優(yōu)點:可以返回繼承的類型
缺點: 不能對象的細(xì)分,如繼承 必須手動修正
4.Object.prototype.toString.call();
優(yōu)點:通用,返回"[objectString]" 具體object的類型
缺點:不能返回繼承的類型