判断一个变量是否为数组

2018-03-11  本文已影响0人  飞飞廉

怎么判断一个变量是不是数组呢?由于数组也是对象,用typeof方法,输出的是Object,所以typeof肯定不能判断一个变量是否为数组了,今天主要记录其他集中判断变量是不是数组的方法。

L.__proto__.__proto__...=R.prototype

所以arr instanceof Array 返回true即可判断arr是数组。

arr.__proto__.constructor==Array

如果返回true就是数组。

23方法的局限性:

instanceof 和constructor判断的变量,必须在当前页面声明的,比如,一个页面中有一个子页面,子页面中声明了一个arr并将其赋值给父页面,在父页面应用23方法都是不可以的。
原因:
1、array属于引用类型,在数据传递过程中,仅仅是引用地址的传递。
2、每个页面的Array原生对象所引用的地址是不一样的,在子页面中声明的arr,所对应的构造函数是子页面的Array对象,父页面来判断并不等于子页面的Array

Object.prototype.toString.call(arr)=='[object Array]'

这个返回true的话就是数组啦~

上一篇 下一篇

猜你喜欢

热点阅读