Javascript如何使用带括号的和/或运算符

我有一个对象,在属性hello中包含一个字符串HelloWorld.我想检查两个字符串,如果它与任何一个都不匹配,那么我想执行某些代码.

var item = { hello: "HelloWorld" }
item.hello !== "HelloWorld" && item.hello !== "GoodbyeWorld" // false, correct

但是,我觉得这可以优化并使其更具可读性:

item.hello !== ("GoodbyeWorld" && "HelloWorld") // false, correct
item.hello !== ("HelloWorld" && "GoodbyeWorld") // true   WTF?

我希望这两个检查都是假的,但我肯定在这里遗漏了一些东西.我想我对javascript中的AND / OR运算符没有正确的理解,或者我以错误的方式使用括号.谁能解释一下?

JSFiddle example

解决方法:

“HelloWorld”的结果&& “GoodbyeWorld”是“GoodbyeWorld”,这就是为什么你得到的结果,你以前的方式是最简单的解决方案

上一篇:c – 在struct本身内访问运算符


下一篇:查询中的MySQL NAND / NOR操作