检测数组性质

2016-08-29  本文已影响0人  TingsLee

1.以操作符typeof操作数组,会返回object

var arr = [1, 2, 3]; typeof(arr) // object

2.使用instanceof操作符检测数组

var arr = [1, 2, 3]; console.log( arr instanceof Array); //true

PS: 在大部分情况下是正确的,但是在IE浏览器中不同框架下运行会有错误,具体参考附图

3.ECMAscript5中定义了一个新方法Array.isArray(),该函数在参数为数组时返回true

var arr = [1, 2, 3]; console.log( Array.isArray(arr) ); //true

4.在不支持Array.isArray()方法的情况下,可以通过以下代码实现该方法:

if (typeof Array.isArray === 'undefined') { Array.isArray = function (arg) { return Object.prototype.toString.call(arg) === "[object Array]"; } }

PS: 在传入参数是对象则返回"[object Object]",传入参数是数组时返回"[object Array]"



原文链接

javascript 为啥不用instanceof检测数组,这里有一个示例坑 - QQLQ - 博客园.png
)
上一篇下一篇

猜你喜欢

热点阅读