더북(TheBook)

구문이 지정되지 않았지만 허용되지 않았기 때문에 자바스크립트 엔진 제작자는 엔진에서 해당 구문에 대한 자체 의미를 자유롭게 정의할 수 있었다. 당연히 이것은 다른 엔진이 다른 일을 하기 때문에 문제를 야기했다. 이전의 simple 함수는 특별히 번거롭지는 않았지만 다음 코드를 살펴보자.

function branching(num) {
    console.log(num);
    if (num < 0.5) {
        function doSomething() {
            console.log("true");
        }
    } else {
        function doSomething() {
            console.log("false");
        }
    }
    doSomething();
}
branching(Math.random());

ES5 세계에서는 이를 처리하는 데 최소한 세 가지 방법이 있다.

첫 번째이자 가장 확실한 옵션은 구문 오류로 만드는 것이다.

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