구문이 지정되지 않았지만 허용되지 않았기 때문에 자바스크립트 엔진 제작자는 엔진에서 해당 구문에 대한 자체 의미를 자유롭게 정의할 수 있었다. 당연히 이것은 다른 엔진이 다른 일을 하기 때문에 문제를 야기했다. 이전의 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 세계에서는 이를 처리하는 데 최소한 세 가지 방법이 있다.

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

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