你能告诉我为什么它在控制台中显示 1,2,3,4 吗?在我的理解中,应该只有 3 和 4(第一个是 && 执行最后一个 false(3)。然后检查 || 最后一个是 true(4))。怎么了?谢谢!!
function zfalse(arg) {
console.log(arg);
return false;
}
function ztrue(arg) {
console.log(arg);
return true;
}
zfalse(1) || ztrue(2) && zfalse(3) || ztrue(4)
一切都是从左到右完成的,如果你放置括号它会更清楚:
将测试以“OR”(||) 分隔的条件,直到其中至少一个条件返回真
将测试由“AND”(&&) 分隔的条件,直到其中至少一个条件返回 false
那些。
zfalse(1)- 打印 1,返回 false,因此正在进行下一次检查ztrue(2) && zfalse(3)ztrue(2)- 打印 2,返回 true,因此正在进行下一次检查zfalse(3)- 打印 3,返回 false,表达式的总值为 falseztrue(4)- 打印 4,返回真,表达式的总值为真结果,执行了所有功能,因此显示了所有数字。