JavaScript では ECMAScript 6 で let キーワードが導入され、比較される変数のより詳細な範囲が提供されました。従来の var.
主な違い変数のスコープにあります。 var で宣言された変数には関数レベルのスコープがあり、それを囲んでいる関数内のどこからでもアクセスできます。一方、let で宣言された変数はブロック レベルのスコープを持ち、変数が定義されている直接のブロック内でのみアクセスできます。
ブロックスコープ:
時間的デッド ゾーン:
次のコード スニペットを考えてみましょう。
function run() { var foo = "Foo"; let bar = "Bar"; console.log(foo, bar); // Foo Bar { var moo = "Mooo" let baz = "Bazz"; console.log(moo, baz); // Mooo Bazz } console.log(moo); // Mooo console.log(baz); // ReferenceError } run();
この例では、foo (var で宣言) は次のようになります。関数全体でアクセスできますが、bar (let で宣言) はネストされたブロック内でのみアクセスできます。ブロックの外で baz にアクセスしようとすると、そのブロック レベルのスコープにより ReferenceError が発生します。
注: より厳密なスコープと拡張機能により、最新の JavaScript 開発では var より let が優先されます。コードの可読性。
以上がJavaScript の「let」と「var」: 変数のスコープの主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。