0 + 1 === 1 || 1 + 1 === 2 || 2 + 1 === 10
有人可以解释为什么这句话会返回 true ?
单独地,前两个是真的,最后一个是假的。但是 OVERALL ,语句返回true。您似乎只需要在较长的语句列表中使用一个真实语句,以使OVERALL语句返回true。这是对的吗?
试图巩固我对布尔人的理解。欢呼声。
答案 0 :(得分:6)
好吧,||
会返回第一个truthy值,如果有的话:
1 || ANYTHING_IN_THE_WORLD ; // returns 1
所以你真正拥有的是
0 + 1 === 1
这是真的。是的,你的理解是正确的。
扩展执行顺序:
Operator precedence在这里发挥作用:
0 + 1 === 1 || 1 + 1 === 2 || 2 + 1 === 10
首先我们有补充:
1 === 1 || 2 === 2 || 3 === 10
然后我们进行了平等检查:
true || true || false;
如上所述,true || ANYTHING_AT_ALL
为真,因此最终输出为true
。
答案 1 :(得分:0)
||
是or
运营商。因此,如果条件一或条件两个或条件3为真,则该语句为真。
我建议您在这里阅读JavaScript:https://developer.mozilla.org/en/docs/Web/JavaScript
答案 2 :(得分:0)
它返回true,因为使用OR运算符(||),first true将返回true。
评估将执行:
> 1- is (0+1===1)
=>真正!然后返回true。
这个
> 0+1===1 || 1+1000===1
将因同样的原因返回true。
答案 3 :(得分:0)
“有些苹果是紫色的,或者有些苹果是绿色的”是正确的,因为一些苹果是绿色的就足够了。当其中一个或两个都成立时,a OR b
将成立。 a AND b
需要两者都是真的。
因此,表达式中的某些项为true的事实使整个表达式成立。如果您将||
替换为&&
,则不会。
事实上,
似乎您只需要在较长的语句列表中使用一个真实语句,以使OVERALL语句返回true。这是对的吗?
(几乎)完全正确。我所提出的唯一修正是将“true”替换为“truthy”,至少在JavaScript的上下文中是这样。例如,3 || 5
不是true
,而是3
- 而3
不是true
, 是真的。