ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript 変数の設定を解除するにはどうすればよいですか?

JavaScript 変数の設定を解除するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-25 09:56:10139ブラウズ

How Do I Unset JavaScript Variables?

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 種類の環境が定義されています:

  • VariableEnvironment: 変数を格納しますvar を使用して定義されており、削除できません。
  • LexicalEnvironment: var なしで定義された変数を格納します。 delete 演算子を使用したプロパティの削除をサポートしています。

var で宣言された変数は、現在のスコープにアタッチされている VariableEnvironment に保存されます。これらの変数を削除するには、eval コンテキストでコードを実行する必要がありますが、ブラウザベースの環境では通常は使用されません。

var なしで定義された変数は、ネストされた LexicalEnvironment にあります。現在の環境で変数が見つからない場合、JavaScript は親環境を検索します。最終的に、グローバル オブジェクトからプロパティを取得しようとします。オブジェクトのプロパティは削除できます。

注:

  • var で定義された変数は、後で初期化されたとしてもスコープの先頭にホイストされます。
  • 厳密モードは、変数の検索ルールに影響します。厳密モードでは、非厳密モードではグローバル プロパティに解決される字句参照により、「宣言されていない変数」エラーが発生する可能性があります。

以上がJavaScript 変数の設定を解除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。