코드 3-4 블록 내 함수 선언: 엄격 모드–func-decl-block-strict.js

    "use strict";
    function branching(num) {
        let f;
        console.log(num);
        if (num < 0.5) {
            console.log("true branch, typeof doSomething = " + typeof doSomething);
            f = doSomething;
            function doSomething() {
                console.log("true");
            }
        } else {
            console.log("false branch, typeof doSomething = " + typeof doSomething);
            f = doSomething;
            function doSomething() {
                console.log("false");
            }
        }
        f();
    }
    branching(Math.random());

    이제 실행하면 f는 한 함수 또는 다른 함수를 참조하고 true 또는 false를 기록한다. 호이스팅 때문에 doSomething은 해당 할당이 선언 위에 있더라도 f에 할당될 때 함수를 참조한다.

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