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