【发布时间】:2019-03-13 01:41:27
【问题描述】:
我曾与不认为数组是对象的经验丰富的程序员讨论过;他们认为对象和数组是数据结构类别的不同类型。但是,据我了解,对象和数组属于同一类型。
如果您要使用一元 typeof 运算符来评估存储数组的绑定,JavaScript 解释器将返回字符串“object”。此外,您可以在包含数组的绑定上使用Object.keys() 方法来获取数组对象的属性名称。
在学习编程时,我看到作者使用“对象和数组”这个短语,就好像它们是独立的实体一样,这增加了混乱。我去了 W3Schools,在“数据类型”部分,他们列出了数组和对象,就好像它们不是同一数据类型一样。
据我了解,对象和数组是相同的,只是数组对象的结构与用大括号分隔的对象不同。也许我错过了什么,可以开悟。
数组是对象吗?如果是这样,它们不应该被列为同一类型,短语不应该是“数组和其他对象”吗?如果没有,为什么不呢?
(编辑:我知道有人问过对象和数组是否相同的问题,但我也在问是否应该改变讨论数组和对象的方式,所以人们不认为数组是不是对象,因为编程不是最容易消化的主题。)
【问题讨论】:
-
与不认为数组是对象的经验丰富的程序员一起 — ummmm ...
-
JavaScript 中的两类通用值:primitives 和 objects。数组绝对是对象。它们有些特殊,但它们是对象。请注意,我们在这里讨论的是 JavaScript;其他语言在很多方面都有所不同。
-
我认为有些经验丰富的程序员不注意定义;只是让程序运行,而不是担心语义。
-
如果您没有意识到数组是对象,那么您可能会在 JavaScript 中感到非常困惑;他们完全是。数组元素引用使用与对象元素引用完全相同的语法。
-
欢迎来到 Stack Overflow!这是一个完全有效的问题;您可以随意忽略反对票。我怀疑这听起来有点像你第一次措辞的基于意见的问题。我对其进行了一些编辑,并使标题更好地概括了您实际提出的问题,这是一个非常清晰、直接、切题的编程问题。但是,它已经在 Stack Overflow 上被询问和回答,所以我将其标记为重复。
标签: javascript arrays object