【发布时间】:2020-05-11 17:27:36
【问题描述】:
当我想确保定义了变量x 时,在使用它之前,我使用:
if (typeof x !== "undefined") {
// do stuff with x
}
但我注意到其他人,例如在这个question 中,使用!== 而不是!= 进行比较。我应该使用哪一个,为什么?
注意:我意识到我可以使用!==。问题是我是否应该(以及行为上是否会有任何差异)。
【问题讨论】:
-
@funnydman:不完全是。我不知道类型转换在这里是否有意义。
-
我个人会使用
if (x != undefined),因为这也会检查null,并且在大多数编程情况下null和undefined几乎是等价的。 -
在你的情况下 - 一点都不重要。
typeof总是返回一个字符串,所以无论你是否使用严格相等,都不会有任何区别。 -
@Pointy:如果变量从未被声明过,那将会失败。
标签: javascript identity equality thunderbird