为什么JavaScript中的这个简单代码会错误地将变量吊起?

时间:2019-01-08 20:10:19

标签: javascript var

我试图了解JavaScript变量提升,并且与Mozilla指定的文档感到困惑。

我要参考的文档是here

console.log(x === undefined); // true
var x = 3;

我正在使用Google Chrome浏览器上的开发人员控制台来测试此代码的最新版本。当我执行上述代码时,当Mozilla文档指出应返回 true 时,返回 false

code example

上面的输出表示运行console.log()之前,x肯定设置为3。 Mozilla指定的此文档不正确吗?或者我在这里不了解某些内容?

2 个答案:

答案 0 :(得分:2)

它将在您第一次运行时返回true,因为x的开头为undefined。运行
var x = 3后,x设置为3,因此,下次您运行console.log(x === undefined)比较时,它返回false,就像{ {1}}不再是x

答案 1 :(得分:0)

我在Mozilla和chrome中运行它,这是真的: 答案第一次是正确的,因为它没有定义,但是下次将是错误的。 清除控制台不会改变答案,您必须重新启动浏览器。