ES5까지 변수를 선언할 수 있는 유일한 방법은 var키워드를 사용하는 것이었다. var 키워드는 독특한 특징이 있어 심각한 문제를 발생시킬 수 있다 먼저 var 키워드는 같은 스코프 내에서 중복 선언을 허용한다. 만약 동일한 이름의 변수가 이미 선언되어 있는 걸 모르고 변수를 중복 선언하면서 값까지 할당한다면, 의도치 않게 먼저 선언된 변수 값이 변경되는 부작용이 발생한다. 또한 var 키워드는 오로지 함수의 코드 블록만을 지역 스코프로 인정한다. 함수 외부에서 var 키워드로 선언한 변수는, 코드 블록 내에서 선언해도 모두 전역 변수가 된다. 이는 전역 변수를 남발할 가능성을 높이고 의도치 않게 전역 변수가 중복 선언되는 상황을 초래한다. 이러한 var 키워드의 단점을 보안하기 위해 ES6에서는 새로..