位置:海鸟网 > IT > JavaScript >

Javascript 数组赋值需要注意的地方

1,“关联数组”:

a = new Array();alert(a.length); //out : 0a['a'] = 'a';a['b'] = 'b';alert(a.length); //out : 0alert(a['a']); //out : aalert(a['b']); //out : b

2,“索引数组”:

a = new Array();alert(a.length);    //out : 0a[5] = 5;alert(a.length);    //out : 6alert(a.toString()); //out : 看下面的截图 1:

也就是说,当执行 a[5] = 5 时,前 5 个元素都被分配了 undefined 的值,因为数组索引都是从 0 开始的,所以,我们只是对第 6 个元素 a[5] 进行了赋值,但是要注意的就是前五个也被“分配”了,只不过是 undefined 的值,所以这里的 a.length 等于 6.

其实上面的 a[5] = 5 等价于下面的:

a = new Array(6);   // 定义长度为 6alert(a.length);    // out : 6alert(a.toString()); //看下面的截图 2a[5] = 5;alert(a.toString()); //看下面的截图 3

图 2:

图 3: