delete数组元素和delete对象属性有什么区别?
delete数组元素和delete对象属性有什么区别?
1、delete指定索引的数组元素,会把那个元素置空(empty),但数组长度不变,获取的时候是未定义
var foo = [1, 2, 3];
delete foo[1];
console.log(foo); // [1, empty, 3] 只是把数组元素清空,并没有改变数组长度
console.log(foo[1]); // undefined
console.log(foo.length); // 3
2、delete对象属性,会把该属性从对象中删除掉,不会再获取到
var bar = {name: 'tom', age: 25};
delete bar.age;
console.log(bar); // {name: 'tom'}
console.log(bar.age); // undefined