var myArray = new Array();
myArray['112'] = 0;
myArray.length
Run Code Online (Sandbox Code Playgroud)
为什么length113以上的样品?不应该'112'为数组添加对象属性并创建类似的东西myArray = {"112":0}?
除此之外,为什么长度为113而不是1?因为myArray实际上只包含1个值
考虑这个简单的例子:
var aa = [];
aa[3] = 'three';
alert( aa.length // 4
+ '\n' + aa[2] // undefined
+ '\n' + aa.hasOwnProperty('2') // false
);
Run Code Online (Sandbox Code Playgroud)
数字3用于分配属性名称,但它被转换为字符串并用作标准属性名称(即字符串“3”)。
添加名为“3”的属性已创建一个属性,并将长度设置为 4,因为长度始终设置为比最大非负整数属性名称大 1。
没有创建其他属性,该数组是“稀疏”的,即它没有按顺序命名(编号)的成员。还可以使用for..in循环来查看只有一个属性。
| 归档时间: |
|
| 查看次数: |
2396 次 |
| 最近记录: |