| 변수 | 중복 선언 | 재할당 | 호이스팅 | 스코프 | 생성과정 |
|---|---|---|---|---|---|
| var | 가능 | 가능 | 가능 | 함수 스코프 | 1. 선언 및 초기화 단계 2. 할당 단계 |
| let | 불가능 | 가능 | 가능 | 블록 스코프 | 1. 선언 단계 2. 초기화 단계 3. 할당 단계 |
| constx | 불가능 | 불가능 | 가능 | 블록 스코프 | 1. 선언 + 초기화 + 할당 |
var 변수는 특징적 것들이 몇가지 존재한다.
→ 중복선언으로 인해 예기치 못한 값을 반환
→ 함수가 아닌 다른 블록 스코프에서 선언된 변수는 모두 전역 변수로 취급되어 예기치 못한 할당
→ 선언 전에 변수를 참조하면 undefined가 될 수 있음.