为什么JavaScript中的这段简单代码不正确?

为什么JavaScript中的这段简单代码不正确?,javascript,var,Javascript,Var,我试图理解JavaScript变量,但我对Mozilla指定的文档感到困惑 我所指的文件是: 我正在使用Google Chrome上的开发者控制台测试最新版本的代码。当我执行上述代码时,当Mozilla文档声明应该返回true时,我会返回false 上面的这个输出意味着在运行console.log()之前,x肯定被设置为3。Mozilla指定的此文档是否不正确,或者这里有什么我不理解的地方吗?它将在您第一次运行它时返回true,因为x以未定义开始。运行var x=3后,x设置为3,因此下次运行

我试图理解JavaScript变量,但我对Mozilla指定的文档感到困惑

我所指的文件是:

我正在使用Google Chrome上的开发者控制台测试最新版本的代码。当我执行上述代码时,当Mozilla文档声明应该返回true时,我会返回false


上面的这个输出意味着在运行console.log()之前,x肯定被设置为3。Mozilla指定的此文档是否不正确,或者这里有什么我不理解的地方吗?

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

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

开发人员控制台使用
eval
,这有不同的规则。尝试分别运行这两行,您会在第一行之后看到
true
。您是否碰巧多次运行它?当你记录x时,你看到了什么<代码>控制台.log(x,x==未定义)
console.log(x === undefined); // true
var x = 3;