为什么表达式1 && 2
计算为2?
console.log("1 && 2 = " + (1 && 2));
答案 0 :(得分:2)
&安培;&安培; (和运算符)返回最后一个(右侧)值,只要该链是" truthy"。
如果您尝试0&& 2 - >结果将是0(这是" falsy")
答案 1 :(得分:1)
根据MDN:
expr1 && expr2
如果可以转换为expr1
,则返回false
;否则,返回expr2
。因此,当与布尔值一起使用时,如果两个操作数都为真,则&&
返回true
;否则,返回false
。
因为1可以评估为true
,1 && 2
会返回2
。
答案 2 :(得分:0)
根据这个页面:
AND返回第一个假值或最后一个值(如果没有找到)。 或者返回第一个真正的一个。
对于同一声明中的多个运算符:
AND&&的优先级运算符高于OR ||,因此它在OR之前执行。警告(5 || 1&& 0); // 5