所有
我有一个关于变量声明的问题,如果我在if块中声明一个变量,当JS引擎遇到该行时,引擎如何知道如何设置该变量?
我知道这是声明变量的可怕方式,但只是好奇JS引擎如何使用它:
if( trueSituation ){
var a_variable = true;
}else {
var another_variable = false;
}
由于
答案 0 :(得分:4)
在JavaScript中,变量声明被提升到其包含范围的顶部。
所以在你的例子中,这个:
if( trueSituation ){
var a_variable = true;
} else {
var another_variable = false;
}
......变成了这个:
var a_variable, another_variable;
if( trueSituation ){
a_variable = true;
} else {
another_variable = false;
}
两个变量最终都被声明,但只有一个变量根据trueSituation
的真实性定义。