第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

JavaScript 入門教程

delete 操作符

delete 操作符用于刪除對象的某個屬性;如果沒有指向這個屬性的引用,那它最終會被釋放。(MDN)

delete 操作符可以刪除對象的一個屬性。

JavaScript 中的關(guān)鍵字與其他語言略有不同,如 C++ 中的 delete 關(guān)鍵字會釋放內(nèi)存,JavaScript中不會,只有當(dāng)一個值的引用歸零時,才會被釋放。

1. 使用 delete

delete 操作符在與操作數(shù)運算結(jié)束后,會返回一個布爾值,成功返回 true。在屬性是不可配置的情況下會返回 false,在嚴(yán)格模式下,則會拋出 TypeError 異常。

var person = {
  age: 16,
};

delete person.age;

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

當(dāng)一個屬性為不可配置的時候:

var person = {};

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

delete person.age; // 返回false

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

2. 在嚴(yán)格模式下的 delete

如果在嚴(yán)格模式下,對一個不可配置屬性進(jìn)行 delete 操作,則會拋出異常。

'use strict'; // 開啟嚴(yán)格模式
var person = {};

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

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

圖片描述

3. 對使用 var 聲明的變量進(jìn)行 delete

使用 var 聲明的變量默認(rèn)是不可配置的,所以對 var 聲明的變量進(jìn)行 delete 操作是無效的。

var number = 996;

delete number; // false

console.log(number);

圖片描述

這里的 numberwindow下的一個屬性,可以使用 Object.getOwnPropertyDescriptor 來查看屬性的描述符。

var number = 996;

Object.getOwnPropertyDescriptor(window, 'number');

圖片描述

4. 使用 delete 刪除數(shù)組成員

delete 可以用于刪除數(shù)組成員,并且是真正意義的刪除,可以讓指定的成員變成 empty 。

var arr = [2, 4, 6, 8, 10];

delete arr[0]; // true

console.log(arr);

圖片描述

有關(guān)數(shù)組 empty 相關(guān)的內(nèi)容可以查閱數(shù)組章節(jié)。

5. 小結(jié)

delete 操作符就是用來刪除對象下的屬性,但這個屬性還有在其他地方被引用,就不會被釋放。