반응형
TDZ
-
[Javascript] Hoisting과 TDZ개발일지/FE 2023. 2. 21. 15:28
Javascript는 var, let, const와 같은 변수 생성 방법이 존재한다. 우리는 간혹 Hoisting을 생각할 때 var과 함수는 Hoisting 되지만 let과 const는 호이스팅이 되지 않는다고 생각한다. 그러나, 이는 틀린 말이다. 먼저 Hoisting의 정의에 대해 알아보자. Hoisting은 MDN 문서에 따르면 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미한다. (🌸호이스팅의 ECMAScript 2015 언어 명세 이후 나타났습니다.) 여기서 var과 let의 차이가 하나 발생하게 되는데 바로 선언과 초기화의 차이이다. 우리는 javascript에 변수가 할당되는 곳까지 총 3개의 단계로 나누어 볼 수 있다. 1. 선언 단계 2. 초기화 단계 3. ..