为什么没有逻辑异或运算符?

287
为什么JavaScript中没有逻辑的XOR运算符?
21个回答

-3

试试这个简短易懂的代码

function xor(x,y){return true==(x!==y);}

function xnor(x,y){return !xor(x,y);}

这适用于任何数据类型


4
这种方法并不适用于所有的数据类型。就像逻辑类型转换运算符一样,我期望 "foo" xor "bar" 的结果为 false,因为它们都是真值。但是你的函数目前并不满足这个要求。通常,进行 true == someboolean 的比较并不必要,所以实际上,你所做的就是将严格不等于操作符包装成了一个函数。 - Gijs
嗨GiJs,我同意你的观点,"foo"和"bar"是真值。但是我编写这个函数时牢记着它将会产生与异或类似的输出(不相等的值输出true,相等的值输出false),而不仅是针对真/假值。我在这种场景下发现它有更多的用途。但是我会在下面的另一个答案中编写真正的逻辑异或。 - Premchandra Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接