ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript ホイスティングにおける「let」と「const」は「var」とどう違うのですか?

JavaScript ホイスティングにおける「let」と「const」は「var」とどう違うのですか?

Barbara Streisand
リリース: 2024-12-31 04:18:12
オリジナル
308 人が閲覧しました

How Do `let` and `const` Differ from `var` in JavaScript Hoisting?

let または const で宣言された変数のホイスティング

var で宣言された変数はホイスティング中に期待どおりに動作しますが、let または const で宣言された変数は問題を示します動作が異なります。

すべてのホイスト宣言

すべての JavaScript 宣言 (var、let、const、function、function*、class) はホイスティングされます。つまり、それぞれのスコープ内のどこでも認識可能です。

初期化の違い

ただし、var/function/function* とlet/const/class 宣言は初期化にあります。 var 宣言は、スコープの開始時にバインディングが作成された瞬間から、unknown で初期化されます。対照的に、let/const/class 宣言は、そのステートメントが評価されるまで初期化されないままになります。

初期化されていない変数の時間的デッド ゾーン

この初期化されていない状態は、「時間的デッド ゾーン」を作成します。 " ここで、初期化前に変数にアクセスすると、 ReferenceError.

例:

x = y = "global";
(function() {
    x; // undefined
    y; // Reference error: y is not defined

    var x = "local";
    let y = "local";
}());
ログイン後にコピー

ホイスティングにおける let と const

Let と const は用語的に同じように動作します吊り上げの。それらの違いは、定数には宣言時に常に値を割り当てる必要があることです。

結論

let または const で宣言された変数はホイストされますが、内部では初期化されないままになります。宣言ステートメントが処理されるまでの一時的なデッドゾーン。時期尚早にアクセスすると ReferenceError が発生します。

以上がJavaScript ホイスティングにおける「let」と「const」は「var」とどう違うのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート