delete演算子は、指定した 配列の要素 や オブジェクトのプロパティ を削除することができます。
目次
1. 配列の要素を削除する
配列の要素を削除するには、次のようにdelete演算子に削除対象の配列を指定します。
1 2 3 4 5 6 |
var ary = ["a","b","c"]; delete ary[1]; // "b" を削除、trueが返る console.log(ary[1]); // undefined console.log(ary.length); // 3 |
削除した要素にアクセスすると、undefinedが返ります。
また、削除しても配列長が変わらない点に注意が必要です。
2. オブジェクトのプロパティを削除する
オブジェクトのプロパティを削除するには、次のようにdelete演算子にプロパティを指定します。
1 2 3 4 5 |
var obj = {key:"001", value:"hoge"}; delete obj.value // valueプロパティを削除、trueが返る。 console.log(obj.value); // undefined |
こちらも削除したプロパティにアクセスすると、undefined が返ります。
3. 変数や関数を削除する
delete演算子では、変数や関数は削除することができません。削除できないため、false もしくは、strictモードの場合は、エラーが返ります。
1 2 3 4 5 |
var num = 1; delete num; // false or エラー var func = function(){ return 1}; delete func; // false or エラー |
4. まとめ
delete演算子で 配列の要素 や オブジェクトのプロパティ を削除しました。
使用する際は、以下の2点に気をつける必要があります。
① 配列の要素を削除しても、配列長は変わらない。
② 変数や関数は削除できない。削除すると false または エラーが返る。(特に非strictからstrictモードに変更する際に注意)