→
オブジェクトからプロパティを削除します。
式 には、プロパティへの参照になる式を置きます。例えば:
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 したものは削除できなかった