<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吧
------解决方案--------------------
变量值域问题