변수 선언 var와 letvar(ES6 이전) 전통적인 JavaScript에는 함수 스코프와 전역 스코프 두가지만 존재했다.var로 선언한 변수는 함수 내부 또는 외부에서 선언되었는지에 따라 함수 스코프 또는 전역 스코프를 가지게 된다. 이때 중괄호로 표시된 블록이 스코프를 생성하지 않는다는 점에서 혼란을 일으킬 수 있다.var의 경우 선언 전에 접근할 시 undefined 이다. letlet 명령문은 블록 스코프의 범위를 가지는 지역 변수를 선언할 수 있다.ES6부터 블록은 스코프로 취급되기 시작했지만, 이는 let과 const로 변수를 선언했을 때만 유효하다.초기화전에는 읽거나 쓸 수 없다. 초기화 전에 접근을 시도하면 RefereceError가 발생한다. 호이스팅변수의 선언문을 유효범위의 최상단으로..