gpt4 book ai didi

javascript - JavaScript 中数组是对象吗?

转载 作者:行者123 更新时间:2023-12-01 01:11:18 29 4
gpt4 key购买 nike

我曾与经验丰富的程序员进行过讨论,他们不认为数组是对象;他们认为对象和数组属于数据结构类别的不同类型。但是,据我了解,对象和数组是同一类型。

如果您要使用一元 typeof运算符来评估存储数组的绑定(bind),JavaScript 解释器将返回字符串“object”。此外,您可以使用Object.keys()包含数组的绑定(bind)上的方法,用于获取数组对象的属性名称。

在学习编程时,我看到作者使用短语“对象和数组”,就好像它们是单独的实体一样,这增加了困惑。我去了 W3Schools,在“数据类型”部分中,他们列出了数组和对象,就好像它们不是同一数据类型一样。

据我了解,对象和数组是相同的,只是数组对象的结构与大括号分隔的对象不同。也许我错过了一些东西并且可以得到启发。

数组是对象吗?如果是这样,它们不应该被列为同一类型,并且短语不应该是“数组和其他对象”吗?如果没有,为什么不呢?

(编辑:我知道有人问过对象和数组是否相同的问题,但我也问是否应该改变数组和对象的讨论方式,所以人们不认为数组是不是对象,因为编程不是最容易消化的主题。)

最佳答案

数组确实是一种对象。

console.log([] instanceof Object);

I go to W3Schools, and in the section "Data Types," they list arrays and objects as if they are not of the same data type

W3Schools 并不是一个特别值得信赖的来源。也就是说,在讨论数据组织时,通常将数组(值的有序集合)与对象(通常是无序的键值对集合)区分开来,尽管事实上数组是对象的子类型。另一方面,因为数组继承自 Object.prototype 通常这一事实在组织/排序数据时不需要考虑。

如果尝试在数组上使用任何 Object 方法,那么一定要记住 Array 继承自 Object,但是通常这是不必要的 - 通常,人们只会使用数组方法(例如 forEachfindincludes 等)。

关于javascript - JavaScript 中数组是对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55133128/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com