演算子のしていることとはプロパティの削除です。演算子はあるオブジェクトを対象とし、そのオブジェクトのプロパティを削除します。演算子の対象となるのがどのオブジェクトなのかということには十分注意しなくてはいけません。演算子とも比べながら見ていきましょう。演算子を適用しています。演算子の部分は以下のように書き換えられます。関数を呼び出しています。指すオブジェクトであるといえるでしょう。演算子を使わずに書き換えることはできませんが、概念的には以下のような操作を行っています。引数として呼び出しています。内部メソッドは引数として渡された名前のプロパティを削除します。指すオブジェクトなのです。指していたオブジェクトには基本的に何の変化ももたらしません。指していたオブジェクトがどこからも参照されなくなったのなら、そのオブジェクト自体を削除し、メモリ領域を解放するといった操作を行っています。仕様として決められたことではなく、極端な話メモリ領域を使い捨てにして、一度作ったオブジェクトは決して削除しない実装があったとしても仕様に違反してはいないはずです。演算子とはまったくの別物であることがわかるでしょう。書いても同じことです。演算子とは、あるプロパティが与えられたとき、そのプロパティを持つオブジェクトから、そのプロパティを削除するものだということです。ここで、変数とはプロパティの別名であるといったことを思い出してください。演算子の動作も同じように説明できます。参照できるものとします。グローバルオブジェクトからプロパティを探す。内部メソッドが呼び出される。演算子を使えばどんなプロパティも削除できるというわけではありません。対象となるオブジェクト自身が持つプロパティでないと削除できません。プロパティの探索自体はプロトタイプチェーンをたどって行われますが、そこで見つかったプロパティは削除されないということです。プロパティの値が返される。プロパティの削除は行われない。プロパティは削除されない。いった属性を持つことがあります。属性を持つプロパティは削除できません。属性を持つものもあります。属性を持つので削除できない。属性を持たないので削除できる。繰り返しますが、変数とは特定のオブジェクトのプロパティです。文により変数を宣言するということは、特定のオブジェクトにプロパティを追加するということです。オブジェクトがそれに該当します。文によって宣言された変数は削除できないということです。これは関数宣言によって作成されたプロパティも同じです。属性を持つので削除できない。属性を持たないので削除できる。属性を持つので削除できない。プロパティが指す値を変更することはできる。これにはひとつ例外があります。コード内でのことです。関数を呼び出した時点のものと同じになります。文により作られるプロパティはグローバルオブジェクトのものとなります。コード中の関数宣言についても同様です。属性を持たないので削除できる。属性を持たないので削除できる。属性を持つので削除できない。コードにて定められています。属性を持つようになる予定です。演算子といったほかの単項演算子と同様、返り値を持ち他の式に組み込んで使うこともできます。