
let
- 블록 스코프의 범위를 갖는 지역 변수
- 선언과 동시에 임의의 값으로 초기화 가능
let의 특징
- 한번 선언하면 재선언 불가
- 재할당은 가능하나 사용하기 전 선언은 돼있어야함
- 블록스코프를 가짐
호이스팅
var를 사용하지 않는 이유는 호이스팅 때문임
- 선언 이전에 접근해도 undefined가 출력됨
이 문제를 해결하기 위해 let, const가 등장함
- 사실 let, const도 호이스팅이 되긴하지만 TDZ (임시적 데드존)구간에 의해 접근이 불가하게 됨
- TDZ : 변수 선언 위치부터 초기화되기 까지의 구간, 이 구간에서 접근하려면 ReferenceError가 발생
const
- 상수 선언시 사용하는 키워드이며 const로 할당된 값은 재할당 할수 없다
- 마찬가지로 재선언 또한 불가능
const의 특징
- 한 번 선언한 변수는 재선언 불가
- 한번 선언한 값은 별경할 수 없다
- 유효한 범위로 블록 스코프를 가짐