2.3 반복된 선언은 에러다
var는 반복적으로 선언할 수 있어 당신을 행복하게 했다. var로 동일한 변수를 원하는 만큼 선언할 수 있다. 예를 들면 다음과 같다.
function redundantRepetition() { var x = "alpha"; console.log(x); // ...코드 생략... var x = "bravo"; console.log(x); // ...코드 생략... return x; } redundantRepetition();
이 코드는 문법상 완벽하게 맞다. x를 두 번 이상 선언한다는 사실은 자바스크립트 엔진에서 완전히 무시된다. 함수 전체에서 사용되는 단일 x 변수를 생성한다. 이전 블록의 var와 마찬가지로 코드의 명백한 의도와 실제 효과는 서로 상충된다. 이미 선언한 변수를 다시 선언하는 것은 아마도 실수일 것이다. 이 경우 redundantRepetition의 원래 작성자는 정신이 없었고 "alpha"를 반환해야 했다. 하지만 나중에 다른 누군가가 와서 중간에 약간 추가했지만 x가 이미 사용되고 있다는 사실을 깨닫지 못했다.