JavaScript Equality Operator

时间:2012-03-23 07:39:13

标签: javascript

在javascript中有什么区别 undefined == variablevariable == undefined都是一样的吗?如果我undefined === variabletypeof variable == 'undefined'会有什么不同?

有人可以帮助我吗

3 个答案:

答案 0 :(得分:1)

当谈到你提到的不同部件顺序时,意义没有区别。

===是严格比较,==不是。例如undefined == false为真,但undefined === false不是。检查未定义的类型与此情况下的严格比较类似。

答案 1 :(得分:1)

不要使用undefined来测试未定义的变量,而是使用typeof运算符!

undefined不是javascript关键字,它只是一个变量名称。如果有人将var undefined = true全局写入代码中的任何位置,那么所有比较都会出现意外情况。

您应该考虑使用JSLINT或JSHINT之类的东西来避免javascript代码中的这类错误。

除此之外,我总是首先编写比较参数,因为这是我读它的方式。 这就是为什么If the variable foo is undefined than应该写成if (typeof foo === "undefined")

的原因

我不记得这个模式的名称,但我很确定有一个:)

答案 2 :(得分:0)

undefined == variablevariable == undefined是相同的。

但如果您错过undefined == variable=),我建议您variable = undefined以防止出现异常行为。

undefined === variabletypeof variable == 'undefined'也应该相同。