可能重复:
^运算符有什么作用?
>>> 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)
?
在这种情况下1^3,XOR运算符执行一些二进制操作以获得2.
1 = 00000001 ^
3 = 00000011
========
00000010 = 2
Run Code Online (Sandbox Code Playgroud)
JavaScript将数组语法[x,y]视为NaN您开始使用它进行数学运算的时候.NaN被解释为0,当你做就可以按位运算,所以foo和bar数学变得有意义考虑到这一点:
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等等.