JS:为什么这个返回true ?

JS: why does this return true?

本文关键字:返回 true 为什么 JS      更新时间:2023-09-26
0 + 1 === 1 || 1 + 1 === 2 || 2 + 1 === 10

谁能解释一下为什么这个语句返回true?

单独地,前两个为真,最后一个为假。然而OVERALL,语句返回true。看起来,您只需要在更长的语句列表中添加一个true语句,就可以使OVERALL语句返回true。对吗?

只是想巩固我对布尔值的理解。欢呼。

如果存在第一个真值,则||返回第一个真值:

1 || ANYTHING_IN_THE_WORLD ; // returns 1

所以这里只有

0 + 1 === 1

这是真的。所以是的,你的理解是正确的。


展开执行顺序:

操作符优先级在这里起作用:

0 + 1 === 1 || 1 + 1 === 2 || 2 + 1 === 10

首先是加法:

1 === 1 || 2 === 2 || 3 === 10

然后我们有相等性检查:

true || true || false;

如上所述,true || ANYTHING_AT_ALL为真,因此最终输出为true

||or操作符。因此,如果条件1 条件2 条件3为真,则语句为真。

我建议在这里阅读JavaScript: https://developer.mozilla.org/en/docs/Web/JavaScript

返回true,因为首先使用OR运算符(||)true将返回true。

计算将执行:

> 1- is (0+1===1)

=>真的!然后返回true。

> 0+1===1 || 1+1000===1

将返回true,原因相同。

"some apples are purple OR some apples are green"是正确的,因为有些苹果是绿的就足够了。当其中一个为真或两个都为真时,a OR b为真。a AND b需要两者都为真

因此,表达式中的某些项为真使得整个表达式为真。如果你用&&代替||,它就不会。

事实上,

看起来你只需要在一个更长的语句列表中有一个真语句就可以使OVERALL语句返回真。对吗?

(几乎)完全正确。我要做的唯一纠正是将"true"替换为"truththy",至少在JavaScript上下文中是这样。例如,3 || 5不是true,而是3,而3不是true,它真理。