JavaScript 変数の設定解除
問題:
JavaScript のグローバル変数は設定でき、複数のスクリプトによってアクセスされます。ただし、後続のスクリプトが変数の存在や値を検出できないようにするために、グローバル スコープから変数を削除する必要がある場合があります。
解決策:
JavaScript 変数の設定を解除する正しい方法は、最初に定義された方法によって異なります。
1. var:
で定義された変数 var キーワードを使用して宣言された変数は、delete 演算子を使用して設定解除することはできません。これらはグローバル スコープに永続的にアタッチされており、削除することはできません。
var globalVar = 1; delete globalVar; // Returns false console.log(globalVar); // Outputs 1
2. var を使用せずに定義された変数:
var キーワードを使用せずに作成された変数は、暗黙的にグローバル オブジェクト (通常はウィンドウ) にアタッチされます。これらは、削除演算子を使用して設定解除できます。
globalVar = 1; delete globalVar; // Returns true console.log(globalVar); // Throws ReferenceError
技術的な説明:
ECMAScript 仕様では、変数が保存される 2 種類の環境が定義されています:
var で宣言された変数は、現在のスコープにアタッチされている VariableEnvironment に保存されます。これらの変数を削除するには、eval コンテキストでコードを実行する必要がありますが、ブラウザベースの環境では通常は使用されません。
var なしで定義された変数は、ネストされた LexicalEnvironment にあります。現在の環境で変数が見つからない場合、JavaScript は親環境を検索します。最終的に、グローバル オブジェクトからプロパティを取得しようとします。オブジェクトのプロパティは削除できます。
注:
以上がJavaScript 変数の設定を解除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。