더북(TheBook)

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

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());
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.