我想知道一些作用域行为。JavaScript意外变量作用域行为
例如我具有可变的和的函数:
var test = 1;
function scope(){
alert(test);
test=2;
}
scope();
alert(test);
这将显示1和2没有问题。但如果我这样做:
var test = 1;
function scope(){
alert(test);
var test = 2;
}
scope();
alert(test);
这将显示'未定义'和'1'。为什么变量会以“未定义”出现?
因为随着范围内定义的测试仍然具有未被赋值。 –
请阅读有关**吊装的信息。** –
[Global JavaScript变量作用域:为什么这不起作用?](http://stackoverflow.com/questions/2685388/global-javascript-variable-scope-why -doesnt-this-work) –