ホームページ >ウェブフロントエンド >フロントエンドQ&A >es6 の let と var の違いは何ですか
違い: 1. let 変数のスコープは、それが定義されているブロックレベルのコード内にありますが、var 変数のスコープは、それを含む関数スコープ内にあります; 2. let 変数は、繰り返し宣言することはできず、var 変数は繰り返し宣言することができます; 3. コード実行前のスキャンでは、var 変数が未定義に初期化されますが、let 変数は初期化されません。
このチュートリアルの動作環境: Windows 10 システム、ECMAScript バージョン 6.0、Dell G3 コンピューター。
let は、var によって引き起こされるさまざまな問題を改善するために ES6 で新しく導入されたキーワードです。
var と比較すると、let と var には大まかに次のような違いがあります:
1. スコープ
Pass let で定義される変数のスコープは、let が定義されているブロックレベルのコードとその中に含まれるサブブロック内にあり、変数をグローバル スコープに追加することはできません。
var で定義された変数のスコープは、関数スコープまたはそれを含むグローバル スコープです。
#2. 繰り返しの宣言
#let で定義された変数は、同じスコープ内で繰り返し宣言することはできません。
var で定義された変数が同じスコープ内で繰り返し宣言された場合、実行コンテキストの生成時に後続の宣言は無視されます。
3. 一時的なデッドゾーンによる昇格などの問題
コードが実行される前に、すべてのドメインで var 宣言が行われることがわかっています。変数を未定義に初期化してからコードを実行する、いわゆる「ブースト」現象です。
しかし、let で宣言された変数の場合は異なります。コードが実行される前のスキャンでも let 変数が「生成」されますが、未定義には設定されません。 let で定義した変数はプロモートされていますが、変数を初期化するコードが実行される前に変数が初期化されていないため、この時点でアクセスすると ReferenceError が設定されます。コード ブロックの開始から実行、let 変数の初期化の完了まで、let 変数は宣言されていますが、アクセスできません。この期間を一時的な不感帯と呼びます。
【関連する推奨事項: JavaScript ビデオ チュートリアル 、Web フロントエンド ]
以上がes6 の let と var の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。