がんばって
ハウスティンとは何ですか。👀
△ホストについて知るためには、まずvar、let、constについて知ります.一番下に整理します.
変数宣言のみをドラッグ&ドロップし、値割り当てはネストされていないため、第1の動作undefined(値が割り当てられていない変数にアクセス)
転送優先度
上記のコードはjavascriptエンジンの変数宣言のネストとして理解されます.以下に示します.
変数宣言と割り当ては分離され、宣言は関数の最上位に昇格します.
let,constも所属Scopeの最上端に選ばれた
ブートと初期化の前に、時間領域Dead Zone(TDZ)領域に属することを宣言します.
この言葉がどういう意味なのか説明します.
var(関数スキャン)
var a = undefined;
// ( 엄밀히는 값 할당 되지 않은 a에 접근시 undefined가 띄어짐 )
a = 10;
ブロックレベルスキャン:外部からアクセスできません.領域変数になります.カッコ内で宣言されたカッコ内でのみ使用可能*カッコ内でアクセス可能
let(ブロックスキャン)
呼び出し前に初期化しないと、Reference Error generation(TDZに閉じ込められている)が表示されます.これは、実際のコードに到達したときに実行されるので、呼び出し前に初期化しないとReference Error(TDZに閉じ込められている)が発生します.
ホイスティンはスコフ単位で立ち上がった
上のコードでは、関数内部がスキャンされています.
上記のコードはJavaScriptエンジンで、以下の宣言ステップが最適化されたと解釈されています.
let age = 30;
function showAge(){
let age // (호이스팅) 아무것도 할당 돼있지 않은 상태
console.log(age); // 아무것도 할당 안돼있기 때문에 ReferenceError
age = 20;
}
showAge();
const(ブロックスキャン)
var、letは、宣言と割り当ての分離を許可します.
contは+初期化+即時割り当てを宣言する必要があります
コードが初期化されていないことを示すSyntaxErrorが表示されます.
(TDZ)タイムドメインデッドゾーンのクリーンアップ
コードを予測し、潜在的なエラーを減らすことができます.
Reference
この問題について(がんばって), 我々は、より多くの情報をここで見つけました https://velog.io/@ksung1889/호이스팅テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol