{

    function foo() { return 1; }

    foo(); // 1

    

    {

        function foo() { return 2; }

        foo(); // 2

    }

    

    foo(); // 1 <- 블록 내부 foo()가 무시됨.

}


foo(); // 2 <- 블록 내부 foo로 불려짐.


왜이럼?