对数组的新认识(摘自权威教程)
数组是对象的特殊形式。使用方括号访问数组元素就像用方括号访问对象的属性一样。JavaScript将指定的数组索引值转换成字符串(索引值1变成“1”)----然后将其作为属性名来使用。
但是数组的特别之处在于,当使用小于的非负整数作为属性名时数组会自动维护其length属性值。
清晰的区分数组的索引和对象的属性名时非常有用的。所有的索引都是属性名,但只有之间的整数属性名才是索引。所有的数组都是对象,可以为其创建任意名字的属性。但如果使用的属性是数组的索引,数组的特殊行为就是将根据需要更新他们的length属性值。
注意,可以使用负数或非负整数来索引数组。这种情况下,数值转换为字符串,字符串作为属性名来用,既然名字不是非负整数,它就只能当做常规的对象属性,而非数组的索引。同样,如果凑巧使用了是非负整数的字符串,它就当做数组索引,而非对象属性。