| vs || ......我使用哪一个是否重要?

时间:2015-12-20 00:43:34

标签: javascript logic

我是否使用|是否重要或||作为一个或运营商?两者似乎都可以互换。



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




2 个答案:

答案 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