0

可能重复:
JavaScript 变量范围

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

变量“you”用未定义初始化,打印时显示未定义而不是显示参考错误。为什么?

4

1 回答 1

7

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

var flag = false;
var you;
if (flag === true)
{
    you = "great"
}
于 2012-12-31T10:23:46.910 回答