Let と Const で宣言された変数のホイスティング
ホイスティングは、宣言をスコープの先頭に移動する JavaScript メカニズムです。プログラムの実行。ただし、var 宣言とは異なり、let と const のホイストは変数の初期化の点で異なります。
宣言のホイスティング
JavaScript のすべての宣言は、var を使用する宣言を含めてホイストされます。 let、const、関数、関数*、クラス。これは、スコープ内の識別子が常に宣言された変数を参照することを意味します。
ホイスティングと初期化
var/function/function* 宣言と let の違い/const/class 宣言は初期化にあります。 var/function/function* 宣言は、スコープの開始時にバインディングが作成されるときに、未定義または関数本体で初期化されます。ただし、字句的に宣言された変数 (let/const/class) は初期化されないままになります。
Let と Const の時間的デッド ゾーン
字句的に宣言された変数の初期化されていない状態により、「一時的なデッド ゾーン」では、初期化前にアクセスすると ReferenceError が発生します。一時的なデッド ゾーンは、変数の作成から let/const/class ステートメントが実行されるまで存在します。
Let と Const の類似点
let と const は両方とも同一のホイスティングを示します。行動。唯一の大きな違いは、定数は宣言 (const one = 1;) でのみ代入する必要があるのに対し、let では再代入が可能であることです。
結論
すべての宣言はJavaScript でホイストされると、let 変数と const 変数は、宣言ステートメントが評価されるまで初期化されないままになり、一時的なデッド ゾーンが作成されます。この区別は、初期化されていない変数の参照を回避し、コードの意図した動作を保証するために不可欠です。
以上がJavaScript の var と比べて、let と const ではホイスティングの動作がどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。