运营商"^"的目的是什么?

Joh*_*nGa 4 javascript syntax

可能重复:
^运算符有什么作用?

>>> var foo = [1,2]
>>> var bar = [3,4]
>>> foo ^ bar
0
>>> foo ^ 3
3
>>> 1^3
2
Run Code Online (Sandbox Code Playgroud)

运营商的目的是什么:^?

编辑1:你能解释一下原因吗?

>>> foo ^ bar
0
Run Code Online (Sandbox Code Playgroud)

Cᴏʀ*_*ᴏʀʏ 6

在这种情况下1^3,XOR运算符执行一些二进制操作以获得2.

    1 = 00000001 ^
    3 = 00000011
        ========
        00000010 = 2
Run Code Online (Sandbox Code Playgroud)

JavaScript将数组语法[x,y]视为NaN您开始使用它进行数学运算的时候.NaN被解释为0,当你做就可以按位运算,所以foobar数学变得有意义考虑到这一点:

foo => NaN = 00000000 ^
bar => NaN = 00000000
             ========
             00000000 = 0

foo => NaN = 00000000 ^
         3 = 00000011
             ========
             00000011 = 3
Run Code Online (Sandbox Code Playgroud)

这似乎是正确的.[1,2]^7 = 7,[1,2,3]^9 = 9等等.

  • 与foo和酒吧的XOR怎么样? (3认同)