두 번째 옵션은 다음과 같이 선언이 실제로 함수 표현식인 것처럼 처리하는 것이다.

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

    이는 개발자가 의도한 임의의 숫자에 따라 true 또는 false로 기록된다.

    세 번째 옵션은 동일한 범위에서 여러 개의 호이스트 선언처럼 처리하는 것이다.

    function branching(num) {
        function doSomething() {
            console.log("true");
        }
        function doSomething() {
            console.log("false");
        }
        console.log(num);
        if (Math.random() < 0.5) {
        } else {
        }
        doSomething();
    }
    branching(Math.random());
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.