더북(TheBook)

코드 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에 할당될 때 함수를 참조한다.

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