在内部,JavaScript 只有对象(和原始类型)。对象是对的无序集合key:value
,其中key
是字符串,value
可以是任何 JavaScript 类型。
数组虽然在外观上看起来像任何其他语言的普通数组,但实际上是对象的一种特殊情况,具有本机支持的语言语法。
每个数组都是一个对象,其中键是数字,值可以是任何类型。键由 JavaScript 本身管理,因此我们可以将数组作为有序的值集合进行操作。这就是我们也可以在for-in
循环中使用数组的原因。此外,JavaScript 提供了标准的数组操作(长度、索引、拼接、切片、连接)作为使用编号键来完成它们的事情的方法。
>>> typeof []
"object"
>>> Object.prototype.toString.call([])
"[object Array]"
我的理解是正确的,还是我遗漏了什么?