你不知道的JS系列 ( 32 ) - 对象之数组
数组有一套更加结构化的值存储机制。数组期望的是数值下标,也就是值存储的位置,通常被称为索引,是整数
var myArray = ['foo', 42, 'bar']; myArray.length; // 3 myArray[0]; // 'foo' myArray[2]; // 'bar'
数组也是对象,仍然可以给数组添加属性
var myArray = ['foo', 42, 'bar']; myArray.baz = 'baz'; myArray.length; // 3 myArray.baz; // 'baz'
数组和普通的对象都根据其对应的行为和用途进行了优化,所以最好只用对象来存储键值对,只用数组来存储下标值对。
*:如果试图向数组添加一个属性,但属性名“看起来”像一个数字,那它会变成一个数值下标
var myArray = ['foo', 42, 'bar']; myArray['3'] = 'baz'; myArray.lenght = 4; // 4 myArray[3]; // 'baz'