跳到主要内容

数组长度

  • 每个数组都有一个 length 属性。
  • 对于稀疏数组,length 会大于元素个数。
;[].length // =>0
;['a', 'b', 'c'].length // =>3

数组实现以维护长度不变式的第一个特殊行为。

如果一个索引 i 的数组元素赋值,而 i 大于或等于数组当前的 length,则数组的 length 属性会被设置为 i+1。

数组实现以维护长度不变式的第二个特殊行为。

就是如果将 length 属性设置为一个小于其当前值的非负整数 n,则任何索引大于或等于 n 的数组元素都会从数组中被删除。

a = [1, 2, 3, 4, 5] // 先定义一个包含5个元素的数组
a.length = 3 // a 变成[1,2,3]
a.length = 0 // 删除所有元素。a是[]
a.length = 5 // 长度是5,但没有元素,类似 new Array(5)