delete 操作符
JavaScript 中的关键字与其他语言略有不同,如 C++ 中的 delete
关键字会释放内存,JavaScript中不会,只有当一个值的引用归零时,才会被释放。
1. 使用 delete
var person = {
age: ,
};
delete person.age;
console.log(person); // 输出:{}
var person = {};
Object.defineProperty(person, 'age', {
value: ,
writable: true,
configurable: false,
});
delete person.age; // 返回false
console.log(person); // 输出:{age: 17}
2. 在严格模式下的 delete
'use strict'; // 开启严格模式
var person = {};
Object.defineProperty(person, 'age', {
value: ,
writable: true,
configurable: false,
});
delete person.age; // TypeError: Cannot delete property 'age'
3. 对使用 var 声明的变量进行 delete
使用 var 声明的变量默认是不可配置的,所以对 var 声明的变量进行 delete
操作是无效的。
var number = ;
delete number; // false
console.log(number);
var number = ;
Object.getownPropertyDescriptor(window, 'number');
4. 使用 delete 删除数组成员
var arr = [, , , , ];
delete arr[]; // true
console.log(arr);
有关数组 empty 相关的内容可以查阅数组章节。