作为一个例子,当在数组的索引上使用
这可以通过以下方式证明:
如果您运行此代码块,您会发现用户永远不会看到文本“它没有起作用!”。这是因为数组上属于索引
现在,事情变得有些奇怪...
尽管从数组中删除了一个索引,但数组长度仍将保持不变:
delete
操作符时,该索引将被删除,就像任何对象的属性一样。这可以通过以下方式证明:
var arr = ['one', 'two', 'three'];
delete arr[1];
if(1 in arr)
alert("It didn't work!");
如果您运行此代码块,您会发现用户永远不会看到文本“它没有起作用!”。这是因为数组上属于索引
1
的属性已被删除。现在,事情变得有些奇怪...
尽管从数组中删除了一个索引,但数组长度仍将保持不变:
var arr = ['one', 'two', 'three'];
alert(arr.length); //will alert '3'
delete arr[2];
alert(arr.length); //will still alert '3'
在调试器中查看数组arr
时(至少在Chrome中),您会发现索引2
甚至不存在,那么为什么长度仍然报告为3?