如何检测一个变量类型是不是数组(转: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

posted @ 2015-05-06 14:01  一日三餐  阅读(95)  评论(0)    收藏  举报