Почему теневая переменная оценивается как неопределенная, если она определена вне области видимости?

Рассмотрим следующий фрагмент кода:



    
        var outside_scope = "outside scope";
        function f1() {
            alert(outside_scope) ;
        }
        f1();
    

 

Выход для этого кода заключается в том, что в окне предупреждения отображается сообщение «вне рамок ", Но если я немного изменю код как:



    
        var outside_scope = "outside scope";
        function f1() {
            alert(outside_scope) ;
            var outside_scope = "inside scope";
        }
        f1();
    

 

в окне предупреждения отображается сообщениене определено», Я мог бы понять логику, если он отображаетне определено» в обоих случаях. Но этого не происходит. Это отображаетне определено» только во втором случае. Почему это?

Заранее спасибо за помощь!

Ответы на вопрос(6)

Ваш ответ на вопрос