2017-10-15 172 views
-1

为什么表达式1 && 2评估为2?为什么1 && 2返回2?

console.log("1 && 2 = " + (1 && 2));

+0

它被称为布尔快捷键。你可以用'||'做类似的事情。例如..'0 || 1 || 2“将返回1,其中'0 && 1 && 2'将返回0.这是因为在第一个示例中,当它遇到1时,满足OR条件,它不需要进一步短路在AND &&的情况下,第一个条件使得不可能如此短路1和2 .. – Keith

回答

0

根据MDN

expr1 && expr2返回expr1,如果它可以被转换为false;否则,返回expr2。因此,当与布尔值一起使用时,如果两个操作数都为真,则&&返回true;否则,返回false

因为1可以进行评估,以true1 && 2返回2

0

根据此页:

Why 1 && 2 == 2

AND返回第一个虚假值或最后一个值,如果没有找到。 或返回第一个真人。

对于同一语句中有多个运营商:

的优先级的AND & &运营商比OR ||高,所以它或之前执行。

alert(5 || 1 & & 0); // 5

+0

解释并给出了另一个链接。请检查 – coder87