相关疑难解决方法(0)

为什么在外部作用域中定义时,阴影变量会被评估为未定义?

考虑以下代码:

<html><head></head>
<body>
    <script type="text/javascript">
        var outside_scope = "outside scope";
        function f1() {
            alert(outside_scope) ;
        }
        f1();
    </script>
</body>
</html> 
Run Code Online (Sandbox Code Playgroud)

此代码的输出是警报框显示消息"外部范围".但是,如果我稍微修改代码为:

<html><head></head>
<body>
    <script type="text/javascript">
        var outside_scope = "outside scope";
        function f1() {
            alert(outside_scope) ;
            var outside_scope = "inside scope";
        }
        f1();
    </script>
</body>
</html> 
Run Code Online (Sandbox Code Playgroud)

警告框显示消息" 未定义 ".如果在两种情况下都显示"未定义",我本可以理解逻辑.但是,这种情况并没有发生.它仅在第二种情况下显示"未定义".为什么是这样?

在此先感谢您的帮助!

javascript variables shadowing

8
推荐指数
3
解决办法
958
查看次数

标签 统计

javascript ×1

shadowing ×1

variables ×1