数组长度
每个数组都有一个 length
属性,就是这个属性使其区别于常规的 JavaScript 对象。针对稠密数组,length
属性值代表数组中元素的个数,而针对稀疏数组,其值比数组中最大的索引值大 1。因此,在数组中肯定找不到一个元素的索引值大于或等于它的长度,为了维持此规则,数组有两个特殊的行为:
- 如果为一个数组元素赋值,它的索引
i
大于或等于现有数组长度时,length
属性的值将设置为i+1
; - 设置
length
属性为一个小于当前长度的非负整数n
时,当前数组中那些索引值大于或等于n
的元素将从数组中删除
还可以将 length
设置为大于当前长度,这不会向数组中添加新元素,只是在数组尾部创建一个空的区域。
在 ECMAScript 5 中,可以用 Object.defineProperty()
让数组的 length
属性变成只读的:
注:这样下来也不能为数组添加新元素了,但可以删除原有的元素,只是
length
属性值不会变动。
No Comments