数组长度
- 每个数组都有一个 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)