我正在尝试理解JS中的这个运算符 -
'string' ^= 'string';
但我找不到任何信息。这是比较还是赋值?
谢谢。
我正在尝试理解JS中的这个运算符 -
'string' ^= 'string';
但我找不到任何信息。这是比较还是赋值?
谢谢。
myVar ^= 5
与myVar = myVar ^ 5
相同。其中,^
是按位异或运算符。
假设myVar
的值为2
按位异或操作检查两个数字的第一个位并返回 1,0 然后看到 0,1 并返回 1,然后看到 1,0 并返回 1。
因此,111 转换回十进制为 7。
所以,5^2
等于7。
var myVar = 2;
myVar ^= 5;
alert(myVar); // 7
5^2 is 7
这部分。我一开始还以为你是指“5的平方”,当然,它应该是25而不是7。 - 11684正如d'alar'cop(以及现在已经有几个人)指出的那样,这意味着一种被称为XOR
的东西。我总是讨厌阅读维基百科的解释,所以我将在此提供另一种解释:
'XOR'表示“异或(eXclusive OR)”。什么是异或?首先看一个例子:
11000110 -- random byte
10010100
--------- ^ -- XOR
01010010
XOR是一种按位运算,如果两个位中有一个为1且另一个为0,则返回2。如果它们都是1,则不是“异或”,而是“与”(“普通或”允许两个1)。
^=
吗? - David G