我是否使用|是否重要或||作为一个或运营商?两者似乎都可以互换。
function Sum(num, sum) {
sum = sum | 0;
return sum;
}
function SumII(num, sum) {
sum = sum || 0;
return sum;
}
console.log(Sum(7));
//0
console.log(SumII(7));
//0

答案 0 :(得分:7)
是的,存在巨大差异。
运营商|
是bitwise operator 或
我引用链接的文档:
在每个位的位置返回一个,其中一个或两个操作数的相应位为1。
因此,通过使用带有两个数字的运算符,将为您提供另一个从前两个数字构建的数字。
运营商||
是logical operator 或
它将其操作数计算为布尔值(假设需要时隐式转换),并以原始形式返回第一个真值。
对于某些操作,结果是相同的(例如,如果在保护中使用,其中应用运算符的结果被视为布尔值),无论您决定使用哪个运算符,最好知道它们之间有什么不同。
答案 1 :(得分:1)
他们不一样
|是BITWISE OR运算符。它采用两个操作数的二进制值,并使用OR逻辑比较每个位。
||是LOGICAL OR运算符。它检查每个操作数的真实性,并使用OR逻辑比较它们。
试试例子
x = 42 || 65 // X now equals 42
x = 42 | 65 // X now equals 107 - 42 bitwise ORed to 65