数组长度


每个数组都有一个 length 属性,就是这个属性使其区别于常规的 JavaScript 对象。针对稠密数组,length 属性值代表数组中元素的个数,而针对稀疏数组,其值比数组中最大的索引值大 1。因此,在数组中肯定找不到一个元素的索引值大于或等于它的长度,为了维持此规则,数组有两个特殊的行为:

  • 如果为一个数组元素赋值,它的索引i大于或等于现有数组长度时,length属性的值将设置为i+1
  • 设置length属性为一个小于当前长度的非负整数n时,当前数组中那些索引值大于或等于n的元素将从数组中删除

还可以将 length 设置为大于当前长度,这不会向数组中添加新元素,只是在数组尾部创建一个空的区域。

在 ECMAScript 5 中,可以用 Object.defineProperty() 让数组的 length 属性变成只读的:

注:这样下来也不能为数组添加新元素了,但可以删除原有的元素,只是 length 属性值不会变动。


点赞 取消点赞 收藏 取消收藏

<< 上一篇: 稀疏数组

>> 下一篇: 数组元素的添加和删除