var
ES5까지 변수를 선언할 수 있는 유일한 방법이었다. var 키워드로 선언된 변수의 특징들에 대해 알아보자.
- 변수 중복 선언 헌용
- 함수 레벨 스코프
- 변수 호이스팅
let
- 변수 중복 선언 금지
- 블록 레벨 스코프
- 재할당이 가능
- 변수 호이스팅이 발생하지 않는 것처럼 동작한다.
var는 선언과 동시에 초기화가 일어나는 반면에 let은 선언만 될뿐 초기화가 이루어지지 않는다. 스코프의 시작 지점부터 초기화 시작 지점까지 변수를 참조할 수 없는 구간을 일시적 사각지대(TDZ)라고 부른다.
const
- 선언과 초기화 (const 키워드로 선언한 변수는 반드시 선언과 동시에 초기화해야 한다)
- 재할당 금지
- 상수(재할당이 금지된 변수)
객체를 할당한 경우에 값을 변경할 수 있다.
⭐ 기본적으로 const 키워드를 사용하고 반드시 재할당이 필요하면 let 키워드로 변경해서 사용하자.