阅读大块头《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不变。