检测数组性质

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

)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容