我正在使用 lint 并用于以下目的:
if (json.RowKey != json.NewRowKey)
它给了我一个信息:
Expected '!==' and instead saw '!='.
谁能解释一下这是什么意思?
最佳答案
==
将在比较它们之前尝试将两个操作数的类型转换为相同。因此 "2"== 2
是 true
。
===
不会尝试转换两个操作数的类型,因此如果它们不是同一类型,它们永远不会是 ===
。因此 "2"=== 2
是 false
。
最好使用 ===
和 !==
作为您的默认选择,并且只使用 ==
或 ! =
当您明确希望允许类型转换时。如果您不希望这两个操作数是不同的类型,那么 ===
和 !==
更有可能达到您的预期。
这可以避免在事物并不真正相等并且您的代码并不打算使它们相等时出现编码错误。
==
发生的一些奇怪的事情(===
不会发生)您可能没有预料到并且可能会导致麻烦。所有这些都评估为 true
:
null == undefined
false == '0'
0 == '0'
0 == ''
这里写了更多细节:Which equals operator (== vs ===) should be used in JavaScript comparisons?
关于javascript - if (json.RowKey != json.NewRowKey) 有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576621/