변수의 선언은 var, const, let 으로 할 수 있다. ES6 에서 const 와 let이 추가되었다 var의 문제점 - 변수 중복선언이 가능하다 → 예상치 못한 값이 반환될 수 있다 - 함수 외부에서 선언한 변수는 전역변수로 설정된다. → 함수 레벨 스코프 때문 - 변수 선언이전에 변수를 참조하면 언제나 undefined를 반환. let - 변수 중복선언이 불가능하다. - 재할당은 가능하다. - 지역변수로 선언됨. ( 블록레벨 스코프 ) - 선언단계와 초기화 단계가 분리되어 진행 → 런타임 이전에 자바스크립트 엔진에 의해 선언 단계가 먼저 실행되지만, 초기화 단계가 실행되지 않았을 때 해당 변수에 접근하려하면 참조에러가 뜬다. ( 일시적 사각지대- Temporal Dead Zone :TDZ ) ..