请检查jsfiddle - http://jsfiddle.net/du8svaym/
var a = [2, 4, "bang", undefined, NaN, 5];
for (i in a)
alert(a[i]); //alerting a[3]=undefined
delete a[1];
for (i in a)
alert(a[i]); //Why not alerting a[1]= undefined?
alert(a[1]); //it is undefined! but not alerted, what is happening under the hood?
如果您注意到,第一个循环警报会警报未定义的值。在第二个循环中,警报 a[1] 未定义,因为我们删除了它,但没有发出警报。两个 undefine 之间有什么区别,delete 设置 undefined 究竟有何不同?
最佳答案
delete
运算符从对象中删除属性。数组是 JavaScript 对象,如下所示:
var foo = {
'0': 2,
'1': 4,
'2': "bang",
'3': undefined,
'4': NaN,
'5': 5
}
delete foo[1]; // completely removes the property '1' from foo.
console.log(foo);
// outputs:
{
'0': 2,
'2': "bang",
'3': undefined,
'4': NaN,
'5': 5
}
关于javascript - 删除具体是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27704476/