JavaScript

delete演算子

 編集:2022.08.07 by T.A.

オブジェクトからプロパティを削除します。

delete

には、プロパティへの参照になる式を置きます。例えば:

delete Obj.prop
//または
delete Obj['prop']

Obj=オブジェクト名、またはオブジェクトとして評価される式。

prop=削除するプロパティ。

戻り値: 非 strict モードでは、プロパティが編集不可の場合、false が返ります。その他の場合すべてで true が返ります。

例外: では、プロパティが編集不可の場合、Global_objects/SyntaxError をスローします。

一般的に信じられていることとは異なり、delete 演算子は、直接的にメモリーを開放することはありません。メモリーの管理は参照が切れることで間接的に行われます。詳細は をご覧ください。

…次のシナリオを考慮することが重要です:

//コンソールにて
var Employee = {
  age: 28,
  name: 'abc',
  designation: 'developer'
}

console.log(delete Employee.name);   // returns true
console.log(delete Employee.age);    // returns true

// When trying to delete a property that does
// not exist, true is returned
console.log(delete Employee.salary); // returns true
編集不可の場合:
//コンソールにて
var Employee = {};
Object.defineProperty(Employee, 'name', {configurable: false});

console.log(delete Employee.name);  // returns false

¶以下省く

D1=10;
delete D1;	//これも可能なのだが
var D1=10;
delete D1;	//var、let、const したものは削除できなかった

テスト