为什么变量被初始化为未定义的事件而不执行块?

时间:2012-12-31 10:22:05

标签: javascript

  

可能重复:
  JavaScript Variable Scope

var flag = false;
if(flag === true)
{
     var you = "great";
}

变量“you”初始化为undefined,它显示undefined而不是在打印时显示引用错误。为什么呢?

1 个答案:

答案 0 :(得分:7)

在Javascript中,所有变量都被“提升”到它们声明的函数/作用域的顶部。也就是说,你的代码对于编译器看起来像这样:

var flag = false;
var you;
if (flag === true)
{
    you = "great"
}