如何检测一个变量类型是不是数组(转:http://www.cnblogs.com/Aralic/p/4470643.html)
如何判断一个变量是不是数组
这里分为四种情况分析:
1.通过constructor
[].constructor===Array;//ture
这种方法比较坑,不推荐,因为constructor是可以自己修改的。
2.通过instanceof
[] instanceof Array;//ture
犀牛书给出的解析是在页面中含多个窗体或是iframe,那么会产生很多循环,一个iframe下的数组不是另一个窗体下构造函数的实例,那么如果出现这中极端条件,instanceof也不适合使用。
3.通过Array.isArray
Array.isArray([]);//true
在新版浏览器,IE9+都已经实现了原生方法
4.通过toString
Object.prototype.toString.call([])==='[object Array]';//ture
在一些博客和犀牛书给出的都是这种方法。
这段代码的意思是对[]调用Object对象原型下的toString方法,不同于数组原型下的toString的方法。
3.Array.isArray

浙公网安备 33010602011771号