【发布时间】:2012-11-05 19:28:14
【问题描述】:
可能重复:
variable hoisting
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();
问题是内联的。帮助我理解变量范围。
【问题讨论】:
-
这不是那个问题的重复,“变量提升”,它说明了“全局范围”并展示了实现异常,尽管它是相关的。
-
@jAndy 有很多 JS 问题,在问这个问题之前我试着看一下 Couple。另外,我正在阅读“Alexei White”的“javascript”一书,他从未谈到提升。
-
为什么你的函数有相同的名字,为什么
var a = 'local'在后者中被注释掉了?我们应该如何确定调用哪些函数以及设置变量的顺序?
标签: javascript