【发布时间】:2021-09-03 18:23:59
【问题描述】:
我很困惑为什么这个语句的计算结果为真:
(false && true || true) === true;
如果 AND (&&) 是一个守卫并且布尔程序是假的,那么它应该已经脱离了 if 语句,但它没有并继续评估 OR (||)声明。
我必须这样做:
false && (true || true) === false;
得到想要的结果。有人知道为什么会这样吗?
【问题讨论】:
-
&&的优先级高于||,所以第一个等价于((false && true) || true) -
(false && true || true)=>(false || true)=>true -
这能回答你的问题吗? Standard boolean order of operation
-
@user3146945 在
a && b || c中,&&的右操作数是b,而不是b || c。
标签: javascript if-statement boolean conditional-statements