Let과 Const를 사용한 변수 호이스팅
var로 선언된 변수가 호이스팅되는 것은 사실이지만, let과 const로 선언된 변수의 동작은 이와 관련하여 혼란스러울 수 있습니다. 이러한 혼란을 해결하기 위해 무슨 일이 일어나고 있는지 분석해 보겠습니다.
Hoisting: A Universal Concept in JavaScript
모든 var를 포함한 JavaScript의 변수 선언 , let, const, 함수 및 클래스 선언이 호이스팅됩니다. 기본적으로 식별자는 선언된 범위 내에서 사용할 수 있습니다.
x = "global"; (function() { x; // not "global" { x; // not "global" let y; // not initialized } var x = "local"; let y = "local"; });
이 예에서 모든 변수 선언은 해당 범위(함수 및 블록) 내에서 호이스팅됩니다.
Temporal Dead Zone: Let 및 Const의 예외
var 선언과 var 선언의 차이점 let/const 선언은 초기화에 있습니다. var 및 기타 이전 스타일 선언은 바인딩이 범위의 상단에 생성될 때 정의되지 않음 또는 함수 개체로 초기화됩니다. 대조적으로, let 및 const 선언은 명령문이 실행될 때까지 초기화되지 않은 상태로 유지됩니다.
이로 인해 시간 데드존이라는 것이 생성됩니다. 이는 변수 생성과 변수 생성 및 생성 사이의 기간입니다. 초기화. 이 영역 내의 변수에 액세스하려고 시도하면 ReferenceError 예외가 발생합니다.
x = y = "global"; (function() { x; // undefined y; // ReferenceError: y is not defined var x = "local"; let y = "local"; }); // Block where temporal dead zone applies
호이스팅에서 Let과 Const 사이에는 차이가 없습니다
let 및 const 선언은 모두 다음을 따릅니다. 동일한 호이스팅 동작. 유일한 차이점은 const 변수는 선언 시 초기화되어야 하며 나중에 다시 할당할 수 없다는 것입니다.
위 내용은 JavaScript의 `var`, `let`, `const` 사이에서 호이스팅, 임시 데드존 및 초기화는 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!