区分 JavaScript 中的 Array 和 Object 有四种方法:Array.isArray() 方法直接检查变量是否为数组。instanceof 运算符检查变量是否为 Array 实例。Object.prototype.toString.call() 方法返回数组的类型描述符。数组具有 length 属性,而对象没有。
如何用 JavaScript 区分 Array 和 Object
简介
在 JavaScript 中,Array 和 Object 是两种数据结构,用于存储和整理数据。尽管它们具有相似之处,但它们本质上还是不同的数据类型,在某些情况下需要加以区分。
区分方法
1. Array.isArray() 方法:
用于直接检查变量是否是 Array,返回布尔值。
2. instanceof 运算符:
检查变量是否为 Array(或任何其他类)的实例。
3. Object.prototype.toString.call() 方法:
返回对象的类型描述符,对于数组会返回 “[object Array]”。
4. 检查对象是否具有 length 属性:
数组具有 length 属性,而对象没有。
详细说明
Array.isArray() 方法:
let arr = [1, 2, 3];console.log(Array.isArray(arr)); // true
登录后复制
instanceof 运算符:
let arr = [1, 2, 3];console.log(arr instanceof Array); // true
登录后复制
Object.prototype.toString.call() 方法:
let arr = [1, 2, 3];console.log(Object.prototype.toString.call(arr)); // "[object Array]"
登录后复制
检查 length 属性:
let arr = [1, 2, 3];console.log(arr.hasOwnProperty("length")); // truelet obj = { name: "John" };console.log(obj.hasOwnProperty("length")); // false
登录后复制
要注意的特殊情况
继承自 Array 的自定义对象或类也可以通过 Array.isArray() 和 instanceof 检查。类似地,某些库或框架可能会提供类似于 Array 的对象,因此使用 Object.prototype.toString.call() 方法可能更可靠。
以上就是js如何区分array和object的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2673995.html