javascript - 为什么这段来自 JavaScript 的简单代码会错误地进行变量提升?

标签 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 指定的这份文档是否不正确,或者我在这里有什么不理解的地方?

最佳答案

它会在您第一次运行时返回 true,因为 x 开始时是 undefined。运行
var x = 3 后,x 会设置为 3,因此下次运行 控制台时.log(x === undefined) 比较它返回 false,因为 x 不再是 undefined

关于javascript - 为什么这段来自 JavaScript 的简单代码会错误地进行变量提升?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54099030/

相关文章:

javascript - 通过组合字符串和变量来创建新的 JavaScript 变量

javascript - 文本值从 HTML 到 Javascript Var?

javascript - 使用 JavaScript 从 JSON 动态表

javascript - 如何获取扩展图像文件 jquery.filer

javascript - Var 和 new 之间的区别

javascript - 有人可以解码这个 javascript 吗?

swift - 如何在 Swift 中使用计时器避免 "variable was written to, but never read"警告

javascript - jQuery 包含大量 'if' 语句。必须有一个更简洁的方法来做到这一点?

javascript - jsplumb 中标签的重叠

Javascript、jscolor 和 ajax 生成输入