グローバル変数を含む、JavaScript での変数宣言構文の区別
JavaScript では、グローバル スコープで変数を宣言するときに、微妙ですが重要な点があります。さまざまな構文間の違い。これらの違いを見てみましょう:
1. var vs. let vs. const
-
var a = 0;: グローバル オブジェクトのプロパティでもあるグローバル変数を作成します (ブラウザのウィンドウとしてアクセス可能) )。この構文は、意図しない副作用や変数の巻き上げの問題が発生する可能性があるため、非推奨になりました。
-
let a = 0; (ES2015 ): グローバル オブジェクトのプロパティではないグローバル変数を作成します。これにより、let ステートメントが出現するまで変数にアクセスできない「時間的デッド ゾーン (TDZ)」が導入されます。
-
const a = 0; (ES2015 ): グローバル定数を作成します。これもグローバル オブジェクトのプロパティではありません。 Const バインディングには追加の制限があります。初期化子を指定する必要があり、値は実行時に変更できません。
2. a = 0;
この構文は、明示的な宣言なしでグローバル変数を宣言することを強くお勧めしません。 strict モードではエラーとみなされます。
3. window.a = 0; vs. globalThis.a = 0;
-
window.a = 0: グローバル スコープで使用される場合は、a = 0 と同等です。 window オブジェクトにグローバル プロパティを作成します。
-
globalThis.a = 0: すべての環境 (ブラウザ以外のコンテキストを含む) で動作する window.a のより現代的な代替手段。
4. this.a = 0;
グローバル オブジェクトにプロパティを作成します (グローバル スコープで使用される場合)。ただし、この構文は特定の状況ではあいまいになる可能性があるため、お勧めできません。
以上がさまざまな JavaScript 変数宣言構文はグローバル スコープにどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。