你不知道的 JavaScript 系列中, 4 - 数组

1、和其他强类型语言不同,JS中数组可以容纳任何类型的值

var a = [1, '2', [3]]

2、数组声明后,不需要预先设定大小

var a = [];
a.length; // 0;

a[0] = 1;
a[1] = '2';
a.length; // 2

3、delete 运算符可以将单元从数组中删除,但单元删除后,数组的长度不会发生变化

4、稀疏数组:含有空白或者空缺单元的数组

var a = [];
a[0] = 1;
a[2] = [3];

a[1]; // undefined
a.length; // 3

a[1] 的值为 undefined,但这予将其显示赋值为 undefined 还是有区别的

5、数组也是对象,可以包含键值对属性,但这些不计算在数组长度内

var a = [];
a[0] = 1;
a['foobar'] = 2;

a.length; // 1

但在数组中加入键值对属性并不是一个好主意,建议使用对象来存放键值属性,用数组来存放数字索引值

6、能够强制类型转换为十进制数字的话,就会被当作数字索引来处理

var a = [];
a['13'] = 42;
a.length; // 14