[JS]がんばって
3079 ワード
✔豪斯婷とは何ですか。
ハウスティンとは何ですか.関数内部の宣言をすべて引き上げ、関数の有効範囲の最上位レベルに宣言します.
関数宣言式、var、let、constはエスケープを引き起こします.
javascriptでは、変数宣言は선언->초기화
フェーズで実行されます.
undefined
が初期化されます.선언과 초기화
が同時に発生するため、ハイライトされると未定義が発生する.var例)
console.log(a); ////undefined(초기화)
var a = 1
console.log(a); /// 1
関数宣言の例)
catName("Chloe"); ///함수호출이 먼저 일어난다
function catName(name) {
console.log("My cat's name is " + name);
}
/*
위 코드의 결과는: "My cat's name is Chloe"
*/
ただし,letとconstについては,エスケープが現れるが,宣言と初期化は別々に行われる.信号が現れると、初期化せずに宣言が行われるため、
RefeerenceError
が現れる.宣言のみが行われたため、参照エラーが発生しました.
(let과 const가 호이스팅이 일어나지 않는다고 착각하지말자!)
console.log(a);///ReferenceError: a is not defined
let a = 1
console.log(a);
Temporal Dead Zone
上記の例に示すように、varおよびlet/constなどの範囲差はTDZによって制約されます.
すなわち、let/contの場合、変数の初期化前にアクセスしようとするとReferenceError
が発生する.これは、転送の実行中に発生したエラーです.
Reference
この問題について([JS]がんばって), 我々は、より多くの情報をここで見つけました
https://velog.io/@duswn38/JS-호이스팅
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について([JS]がんばって), 我々は、より多くの情報をここで見つけました https://velog.io/@duswn38/JS-호이스팅テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol