本文摘自PHP中文网,作者青灯夜游,侵删。

相关推荐:《javascript视频教程》
一、Array.isArray判断
用法:Array.isArray(arr)
ES5中新增了Array.isArray
方法,IE8及以下不支持
Array.isArray()
用于确定传递的值是否是一个[Array], 返回布尔值 true;否则它返回 false。
1 2 |
|
1 2 3 4 5 6 7 |
|
二、constructor判断
用法:arr.constructor === Array
Object的每个实例都有构造函数 constructor
,用于保存着用于创建当前对象的函数
1 2 |
|
三、instanceof 判断
用法:arr instanceof Array
instanceof
主要是用来判断某个实例是否属于某个对象
1 2 |
|
注:instanceof操作符的问题在于,它假定只有一个全局环境。如果网页中包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的Array构造函数。如果你从一个框架向另一个框架传入一个数组,那么传入的数组与在第二个框架中原生创建的数组分别具有各自不同的构造函数。(红宝书88页上的原话)
四、原型链上的isPrototypeOf判断
用法:Array.prototype.isPrototypeOf(arr)
Array.prototype
属性表示 Array 构造函数的原型
isPrototypeOf()
可以用于测试一个对象是否存在于另一个对象的原型链上。
1 2 |
|
五、Object.prototype.toString
用法:Object.prototype.toString.call(arr) === '[object Array]'
Array继承自Object,JavaScript在Array.prototype
上重写了toString,toString.call(arr)
实际上是通过原型链调用了。
1 2 |
|
六、Array 原型链上的 isPrototypeOf
用法:Array.prototype.isPrototypeOf(arr)
Array.prototype
属性表示 Array 构造函数的原型
1 2 |
|
顺便复习一下typeof的用法:
对于引用类型,不能用typeof来判断,因为返回的都是object
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
更多编程相关知识,请访问:编程学习!!
以上就是JS判断是否为数组的6种方式的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
javascript 中cookie读、写与删除操作(图文教程)
javascript中关于“this”的7个有趣面试题,你能全答对吗?
更多相关阅读请进入《javascript》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者