let 또는 const로 선언된 변수 호이스팅
var로 선언된 변수는 호이스팅 중에 예상대로 동작하지만, let 또는 const로 선언된 변수는 Exhibition 행동이 다릅니다.
모두 게양 선언
모든 JavaScript 선언(var, let, const, function, function*, class)은 호이스팅을 거치므로 해당 범위 내 어디에서나 인식할 수 있습니다.
초기화 차이
그러나 var/function/function*과 let/const/class 선언은 초기화에 있습니다. Var 선언은 범위 시작 시 바인딩이 생성되는 순간부터 정의되지 않은 상태로 초기화됩니다. 대조적으로, let/const/class 선언은 해당 명령문이 평가될 때까지 초기화되지 않은 상태로 유지됩니다.
초기화되지 않은 변수에 대한 임시 데드 존
이 초기화되지 않은 상태는 "임시 데드 존"을 생성합니다. " 여기서 초기화 전에 변수에 액세스하면 ReferenceError.
예:
x = y = "global"; (function() { x; // undefined y; // Reference error: y is not defined var x = "local"; let y = "local"; }());
let vs. const in Hoisting
Let과 const는 측면에서 동일하게 작동합니다. 게양의. 차이점은 상수는 선언 시 항상 값을 할당해야 한다는 것입니다.
결론
let 또는 const로 선언된 변수는 호이스팅되지만 내부에서 초기화되지 않은 상태로 유지됩니다. 선언문이 처리될 때까지 일시적인 데드존입니다. 조기에 액세스하면 ReferenceError가 발생합니다.
위 내용은 JavaScript Hoisting에서 `let`과 `const`는 `var`와 어떻게 다른가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!