阅读大块头《javascript 权威指南》笔记 7-数组

  • 数组是之的有序集合。

  • 每个值叫做一个元素,每个元素在数组中都有一个位置,用数字表示,也就是索引。

  • 数组是无类型的,数组的元素可以试任意类型,并且同一个数组中的不同元素也可能是不同的类型。

  • 数组的元素可能是对象或者其他数组,例如对象的数组和数组内的数组。

  • 数组最大能容纳 4294967295 个元素。
    数组是动态的,根据需要它们会增长或者缩减,创建时也无需声明一个固定的大小,变化时也无需重新分配空间。
    数组可以是稀疏的,也就是说索引不一定要连续,它们之间可以由空缺。
    每个数组都有一个 length 属性,非稀疏数组,length 就是对应的个数,稀疏数组,lenbgth 比所有元素的索引要大。
    var a = []; a[1000] = 0; // a.length = 1001

  • 如果省略某个值,省略的元素会被赋予 undefined 值。
    var count = [1, , 3]; // [1, undefined, 3]

  • 设置 length 属性为一个小于当前长度的非负数整数 n 时,大于或者等于 n 的元素会被删除。
    var a = [1,2,3,4,5]; a.length = 3; // a = [1,2,3]

  • ES5 中,可以通过 Object.defineProperty()让数组变为自读。
    var a = [1,2,3]; Object.defineProperty(a, 'length', {writable: false}); a.length = 1000; // a.length = 3;

  • 使用 push() 在数组末尾增加一个或者多个元素.

  • 可以像删除对象属性一样用 delete 运算符删除数组元素,并赋予 undefined,并且 length 不变。