Javascript XOR 操作(试图理解!)



我一直在研究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
}

最新更新