転送とTDZ
ハウステンボス、TDZホットスポット...?
ホイスティンは昇進宣言を指す.これがvar変数を先に読み込み、以下で宣言しても変数を使用できる理由です.JAvascriptの変数が宣言されると、再利用可能にするために「初期化フェーズ」にメモリにスペースを残します.
しかしvarは宣言と初期化とともに行われるがletとconstは宣言と初期化を分離することができる.すなわち、let、const変数を先に読み込み、次に宣言すると、宣言のみがハイライトされて上向きになり、初期化は下に残ります.
したがって、次の例ではReferenceErrorが表示されます.このとき、宣言されたが初期化されていない状態をTDZ(temporal dead zone)と呼ぶ.
function cat () {
name = 'perl'; // 초기화 없이
console.log(name);
let name; //
}
Reference
この問題について(転送とTDZ), 我々は、より多くの情報をここで見つけました https://velog.io/@uvula6921/호이스팅과-TDZテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol