var a = 10;
sayHi();
function sayHi()
{
var a = a + 10;
alert(a);
return a;
}
alert(a);
alert(sayHi()+10);
为什么上面的结果不是20和30?我觉得第一个是20,然后是30。
function sayHi()
{
var a = a + 10;
alert(a);
return a;
}
与
function sayHi()
{
var a;
// a in this function will be the loacal variable a, which is undefined at first
// a is undefined, undefined + 10 is NaN
a = a + 10;
alert(a);
return a;
}
检查这篇文章:JavaScript 作用域和提升 http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting
如果你想使用全局变量a
,你不应该使用var a
函数内部。
但更好的解决方案是使用参数。
function sayHi(a)
{
a = a + 10;
alert(a);
return a;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)