当前位置: 代码迷 >> Java相关 >> 求解一个简单的JS有关问题
  详细解决方案

求解一个简单的JS有关问题

热度:33   发布时间:2016-04-22 21:00:38.0
求解一个简单的JS问题
<script type="text/javascript">
        var local = "out";
        function test() {
                alert("out--->" + local);
                var local = "inner";    // 关键地方
                alert("inner--->" + local);
        }
        test();
</script>
上面注解处不定义var 和定义 var 对 alert("out--->" + local);的值有影响,为什么有影响呢?重新定义var local的原因吗?
------解决方案--------------------
自己看下作用域链就明白了。
------解决方案--------------------
在一个JS函数中,如果没有用var声明,则是全局变量,如果用了var声明,不管在什么地方声明,变量声明都会提前到函数顶端,你的代码就相当于这样:

.<script type="text/javascript">
        var local = "out";
        function test() {
               var local ;
                alert("out--->" + local);
                 local = "inner";    // 关键地方
                alert("inner--->" + local);
        }
        test();
</script>


声明在前而初始化在后,第一个应该是undefined吧
------解决方案--------------------
变量值域问题
  相关解决方案