您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

delete 操作符

delete 操作符用于对象的某个;如果没有指向这个的引用,那它最终会被释放。(MDN)

delete 操作符可以对象的。

JavaScript 中的关键字与其他语言略有不同,如 C++ 中的 delete 关键字会释放内存,JavaScript中不会,只有当值的引用归零时,才会被释放。

delete 操作符在与操作数运算结束后,会返回布尔值,成功返回 true。在是不可配置的情况下会返回 false,在严格模式下,则会抛出 TypeError 异常。

var person = {
  age: ,
};

delete person.age;

console.log(person); // :{}

当为不可配置的时候:

var person = {};

Object.defineProperty(person, 'age', {
  value: ,
  writable: true,
  conurable: false,
});

delete person.age; // 返回false

console.log(person); // :{age: 17}

如果在严格模式下,对不可配置进行 delete 操作,则会抛出异常。

'use strict'; // 开启严格模式
var person = {};

Object.defineProperty(person, 'age', {
  value: ,
  writable: true,
  conurable: false,
});

delete person.age; // TypeError: Cannot delete property 'age'

使用 var 声明的变量认是不可配置的,所以对 var 声明的变量进行 delete 操作是无效的。

var number = ;

delete number; // false

console.log(number);

这里的 numberwindow下的,可以使用 Object.getOwnPropertyDescriptor 来查看的描述符。

var number = ;

Object.getOwnPropertyDescriptor(window, 'number');

delete 可以用于数组成员,并且是真正意义的,可以让指定的成员变成 empty

var arr = [, , , , ];

delete arr[]; // true

console.log(arr);

有关数组 empty 相关的可以查阅数组章节。

delete 操作符就是用来对象下的,但这个还有在其他地方被引用,就不会被释放。


联系我
置顶