JS引擎如何处理Condition块中的变量声明?

时间:2015-08-27 21:26:00

标签: javascript

所有

我有一个关于变量声明的问题,如果我在if块中声明一个变量,当JS引擎遇到该行时,引擎如何知道如何设置该变量?

我知道这是声明变量的可怕方式,但只是好奇JS引擎如何使用它:

if( trueSituation ){
    var a_variable = true;
}else {
    var another_variable = false;
}

由于

1 个答案:

答案 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的真实性定义。