2
if (typeof operand1 != "undefined" && operand1 == operand2) {
}

以上是if检查操作数 1 和操作数 2 之间是否相等的语句,其中操作1可能undefined在某些情况下。我想知道是否typeof operand1 != "undefined"不必要。

4

2 回答 2

3

因为您使用==运算符而不是===运算符,所以只有 if operand2will never be才没有必要null

但是您可以将 更改if statement为使用===运算符,该运算符只有在operand2“真正等于”时才会通过operand1,意思operand2也是undefined如此。

您可以在此处阅读更多相关信息:
JavaScript 比较中应该使用哪个等号运算符 (== vs ===)?

一个小提琴,显示了这里写的内容。


Data Base世界上,null(或undefined) 什么都不是,这意味着你不能将它与任何东西进行比较。

SQL 示例:

SELECT *
FROM   table_name t
Where  t.operand1 = null

是一个错误,因为没有任何东西等于 null,而 null 不等于任何东西,它只是不存在。

javascriptit is not like that 中,您可以将事物与nulland进行比较undefined,但您必须小心TypeErrors,就像这样:

var x;
x.foo; // TypeError!
于 2012-04-10T22:50:54.127 回答
2

唯一一次我会说在检查两个变量值的相等性之前有必要进行typeof检查是当其中一个 ( operand1) 可能未定义时,防止ReferenceError.

js小提琴

于 2012-04-10T22:52:56.680 回答