日期:2014-05-20  浏览次数:20662 次

javascript
<script type="text/javascript">
var a = 10;
sayHi();
function sayHi() {
var a = 20;
alert(a);
}
alert(a);
</script>

重定义变量,为什么不报错啊!
<script type="text/javascript">
var a = 10;
sayHi();
function sayHi()
{
var a = a + 10;
alert(a);
return a;
}
alert(a);
alert(sayHi()+10);
</script>

重定义变量,为什么不报错啊!
------解决方案--------------------
javascript之中 前面加上var定义的变量
1、在不同的作用域内定义,只是针对作用域内有效,出了作用域就无效
2、在相同的作用域内定义,后者覆盖前者。

你的一个是window内的作用域,另外一个是function sayHi的作用域内。所以没影响的。