더북(TheBook)

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가 이미 사용되고 있다는 사실을 깨닫지 못했다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.