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