ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の時間的デッド ゾーンとは何ですか?またそれを回避するにはどうすればよいですか?
JavaScript の時間的デッド ゾーンを理解する
JavaScript を使用しているとき、宣言された変数にアクセスするときに「時間的デッド ゾーン」という用語に遭遇することがあります。初期化の前に let と const を使用します。これにより ReferenceError が発生し、頭を悩ませることになる可能性があります。
時間的デッド ゾーン
時間的デッド ゾーンは、ブロック スコープの実行中の期間です。変数 (let または const で宣言) は、変数がまだ定義されていません。この未定義の期間は、変数が宣言された瞬間からその初期化が処理される時点まで存在します。
スコープとホイスティング
ブロック スコープ変数は、var 宣言とは異なり、スコープは、それらが定義されているブロックに限定されます。宣言をスコープの先頭に移動する JavaScript インタプリタのメカニズムであるホイスティングは、let 変数と const 変数には適用されません。これにより、一時的なデッド ゾーンが作成され、変数はすでに宣言されているもののアクセスできない状態になります。
影響
一時的なデッド内の let または const 変数へのアクセスゾーンは ReferenceError をスローします。以下に例を示します。
console.log(aVar); // undefined console.log(aLet); // ReferenceError: Cannot access 'aLet' before initialization var aVar = 1; let aLet = 2;
このコードでは、var で宣言された aVar は初期化前にアクセスできますが、let で宣言された aLet はアクセスできません。これは、aVar はホイストされますが、aLet はホイストされないためです。
発生した状況
次の状況では、一時的なデッド ゾーンが発生する可能性があります。
回避
一時的なデッドゾーンを回避するには、次のことを確認してください。ブロックスコープ変数は、アクセスする前に初期化します。もう 1 つのアプローチは、ブロックの外で宣言されたグローバル let 変数または const 変数を使用することです。
以上がJavaScript の時間的デッド ゾーンとは何ですか?またそれを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。