ホームページ >ウェブフロントエンド >フロントエンドQ&A >es6 の let と var の違いは何ですか

es6 の let と var の違いは何ですか

WBOY
WBOYオリジナル
2022-03-31 15:08:422428ブラウズ

違い: 1. let 変数のスコープは、それが定義されているブロックレベルのコード内にありますが、var 変数のスコープは、それを含む関数スコープ内にあります; 2. let 変数は、繰り返し宣言することはできず、var 変数は繰り返し宣言することができます; 3. コード実行前のスキャンでは、var 変数が未定義に初期化されますが、let 変数は初期化されません。

es6 の let と var の違いは何ですか

このチュートリアルの動作環境: Windows 10 システム、ECMAScript バージョン 6.0、Dell G3 コンピューター。

es6 における let と var の違いは何ですか

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。