检测对象是否为数组 instanceof

[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间检测时失效。

posted @ 2016-11-21 14:39  菜鸟一小只  阅读(4341)  评论(0编辑  收藏  举报