var 사용을 지양하기
- var는 함수 스코프를 가지며, 선언 후 재할당이 가능하다.
- 함수 외부에서 선언한 var 변수는 전역변수로 생성된다.
- var는 중복 선언이 가능하다.
- var는 **호이스팅(Hoisting)**이 이루어지며, 선언 이전 참조할 수 있다.
- 이로 인해 예측하지 못한 결과를 초래할 수 있다.
let
- 블록 스코프를 가지며, **TDZ(Termporal Dead Zone)**을 통해 안전한 코드를 작성할 수 있다.
- 선언 후 재할당이 가능하다.
- 중복 선언이 불가능하다.
- TDZ에 의해 선언 전 참조하는 것이 불가능하다.
const
- 블록 스코프를 가지며, **TDZ(Termporal Dead Zone)**을 통해 안전한 코드를 작성할 수 있다.
- 선언과 동시에 할당을 해야한다.
- 선언 후 재할당이 불가능하다.
- 중복 선언이 불가능하다.
- TDZ 에 의해 선언 전 참조하는 것이 불가능하다.