var a = "global";
//version 1
function changeGlobal(){
alert(a); //why is 'a' undefined here?
if(a){
var a = "local";
alert(a);
}
}
//version 2
function changeGlobal(){
alert(a); //why is 'a' 'global' here? what diff does 'var a="local"' make?
if(a){
//var a = "local";
alert(a);
}
}
changeGlobal();
问题是内联。帮助我了解变量范围。
这个问题不是重复的,即“变量提升”,即“全局范围”,表现出实现异常,尽管它是相关的。 – 2012-11-17 03:27:23
@jAndy有很多JS的问题,我试着在看这对夫妇之前试过。另外,我正在阅读'Alexei White'的书'javascript',并且他从来没有谈论过悬挂。 –
为什么你的函数具有相同的名称,为什么'var a ='local''在后者中被注释掉了?我们应该如何确定哪些函数被称为变量被设置的顺序? –