【发布时间】:2017-02-19 08:09:53
【问题描述】:
重构一些旧代码,发现如下:
someVar == !otherVar
看起来不太清楚,我认为可以写成:
someVar != otherVar
这样做似乎合乎逻辑。但是,既然是Javascript,我怕附带问题,这样真的可以吗?
【问题讨论】:
-
这些变量的值的类型/范围是什么?
-
@Amit 通常为布尔值,但我之所以问是因为并非总是如此。想象一下它们是字符串还是其他东西。
-
someVar != otherVar等价于!(someVar == otherVar),其他一切都依赖于otherVar。 -
@Bergi 你说得对。在逻辑上,我认为我可以否定整个表达式,但不能否定比较本身。
-
您可以用于布尔值,但不能用于其他类型。您将需要一些值,将其转换为布尔值和取反确实会反转所有与所有其他值的比较结果。这非常罕见。
标签: javascript logic boolean-logic boolean-expression