我一直在研究Javascript中的插入符号(XOR)操作符,但我很难理解。
有人可以解释为什么,例如,1 ^ 1 = 0?
我有一些人编写的代码,他们正在执行以下操作:
if (shouldBeCollapsed ^ 1)
{
//code to collapse section of page.
}
但是如果shouldBeCollapsed变量等于1,则条件失败。我只是想了解^运算符背后的逻辑,这让我感到困惑!
谢谢!
答案 0 :(得分:6)
这是XOR的定义。如果X!= Y,则X ^ Y为1。 因此,如果X和Y都是1,则XOR为0。
真值表如下:
X Y X^Y
0 0 0
0 1 1
1 0 1
1 1 0
X ^ Y
在逻辑上等同于(X && !Y) || (!X && Y)
答案 1 :(得分:2)
让我举一个例子说明:
2 ^ 1 = 3
In binary
10 ^ 01 = 11
按位级别A^B = 1 if A != B
shouldBeCollapsed
看起来像一个布尔变量,在这种情况下你做错了。你在寻找的是:
if (shouldBeCollapsed) {
// Code to collapse
}