[1,2] instanceof Array //true
Array.isArray([1,2]) //true
Object.prototype.toString.apply([]); === “[object Array]”; Object.prototype.toString.apply(function(){}); === “[object Function]”; Object.prototype.toString.apply(null); === “[object Null]” Object.prototype.toString.apply(undefined); === “[object Undefined]” IE6/7/8 Object.prototype.toString.apply(null) 返回”[object Object]”
數據檢測小結:
typeof
適合基本類型及function檢測,遇到null失效。
[[Class]]
通過{}.toString拿到,適合內置對象和基元類型,遇到null和undefined失效(IE678等返回[object Object])。
instanceof
適合自定義對象,也可以用來檢測原生對象,在不同iframe和window間檢測時失效。