ES6 では、let または const で宣言された変数は、var.
吊り上げの神話まず、それが重要ですlet、const、var、function、function*、class を使用するものも含め、JavaScript のすべての宣言がホイストされることを明確にするためです。これは、これらすべての宣言が、それらが定義されているスコープ全体にわたって可視であることを意味します。
let と const の違い重要な違いは、ホイスティングではなく、初期化 let と const のvariables.
let とconst 変数の宣言と初期化の間の期間は、
時間的デッド ゾーン例
この例では、var 変数と let 変数 x と y が関数スコープの先頭で宣言されています。ただし、let 変数 y は後になるまで初期化されず、y にアクセスするとエラーがスローされる一時的なデッドゾーンが作成されます。結論x = y = "global"; (function() { console.log(x); // undefined console.log(y); // Reference error: y is not defined var x = "local"; let y = "local"; }());
JavaScript のすべての宣言がホイストされる一方で、let 変数と const 変数は次のような結果を示します。異なる初期化動作。この動作により、「ホイストされていない」という認識が生じますが、実際には、遅い初期化によって作成された一時的なデッド ゾーンが原因です。 let 変数と const 変数は両方とも、ホイスティングに関しては同じように機能します。
以上がJavaScript で「let」と「const」がホイストされないように見えるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。