🖥️ Front-End/JavaScript

[Vanilla JS] 자바스크립트 변수 비교 (var, let, const)

dush 2025. 3. 11. 19:56

1. var

- 선언과 초기화가 동시에 이루어짐 (호이스팅 되며 undefined로 초기화 됨. 참조해도 오류 발생 x)
- 재할당 가능
- 재선언 가능
- 함수 레벨 스코프

2. let

- 선언과 초기화가 분리되어 이루어짐 (호이스팅 되며 선언은 되지만, 참조하면 오류 발생)
- 재할당 가능
- 재선언 불가
- 블록 레벨 스코프

3. const

- 선언과 초기화가 분리되어 이루어짐 (호이스팅 되며 선언은 되지만, 참조하면 오류 발생)
- 재할당 불가
- 재선언 불가
- 블록 레벨 스코프

4. var vs let, const

- 초기화 시점이 다름. var는 참조 에러 발생 x

5. TDZ (Temporal Dead Zone)

선언과 초기화 사이의 구간 -> 이 때 호출하면 참조 에러 발생
함수 선언문은 TDZ가 없지만, 함수 표현식은 TDZ가 존재함

** TDZ 이해 후 클로저(Closure)도 꼭 학습해보자**