Javascript 数组赋值需要注意的地方
1,“关联数组”:
a = new Array(); alert(a.length); //out : 0 a['a'] = 'a';a['b'] = 'b'; alert(a.length); //out : 0 alert(a['a']); //out : a alert(a['b']); //out : b
2,“索引数组”:
a = new Array(); alert(a.length); //out : 0 a[5] = 5; alert(a.length); //out : 6 alert(a.toString()); //out : 看下面的截图 1:
也就是说,当执行 a[5] = 5 时,前 5 个元素都被分配了 undefined 的值,因为数组索引都是从 0 开始的,所以,我们只是对第 6 个元素 a[5] 进行了赋值,但是要注意的就是前五个也被“分配”了,只不过是 undefined 的值,所以这里的 a.length 等于 6.
其实上面的 a[5] = 5 等价于下面的:
a = new Array(6); // 定义长度为 6 alert(a.length); // out : 6 alert(a.toString()); //看下面的截图 2 a[5] = 5; alert(a.toString()); //看下面的截图 3
图 2:
图 3: