JavaScript 中 (|) 按位 OR 与 (^) 按位 XOR 之间的区别

ant*_*rek 2 javascript bitwise-operators

我真的|^JavaScript 中使用OR 与XOR感到困惑,如下面的简单示例所示;

(function sayHi(n){
if(n < 1)   //base case
    return;
console.log("Hi!!" | "Hello!!") ;
sayHi(n - 1);   //recurse
})(5);


(function sayHi(n){
if(n < 1)   //base case
    return;
console.log("Hi!!" ^ "Hello!!") ;
sayHi(n - 1);   //recurse
})(5);
Run Code Online (Sandbox Code Playgroud)
(function sayHi(n){
if(n < 1)   //base case
    return;
console.log(2 | 6) ;
sayHi(n - 1);   //recurse
})(5);


(function sayHi(n){
if(n < 1)   //base case
    return;
console.log(2 ^ 6) ;
sayHi(n - 1);   //recurse
})(5);
Run Code Online (Sandbox Code Playgroud)

我对何时、如何、为什么、在何处适当使用|vs感到困惑^

有人可以帮助我理解ORXOR操作之间的主要区别吗?

我正在阅读MDN web Docs 中的JavaScript文档以更好地理解按位运算的概念,但我正在努力理解它们的显着差异。

我只是想确保我今后继续正确使用这些操作。

非常感谢预期的帮助!

Jos*_*a K 5

OR 和 XOR 是不同的运算符:

如果您有两位并将它们与 OR 组合,则结果将为 1,如果这些位之一或两者均为 1。如果您将它们与 XOR(异或)组合,则如果这些位中只有一位为 1,则结果将为 1 (如果两者都不是)。