[英]JS: why does this return true?
0 + 1 === 1 || 1 + 1 === 2 || 2 + 1 === 10
有人可以解釋為什么該語句返回true嗎?
分別而言,前兩個為true,最后一個為false。 但是, 總體而言 ,該語句返回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 || ANYTHING_AT_ALL
為true,因此最終輸出為true
。
||
是or
運算符。 因此,如果條件一或條件二或條件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。
“某些蘋果是紫色或某些蘋果是綠色”是正確的,因為某些蘋果是綠色就足夠了。 當一個或兩個為真時,或a OR b
為真。 a AND b
都必須為真。
因此,表達式中的某些項目為真的事實使整個表達式為真。 如果替換||
不會 與&&
。
事實上,
似乎您只需要一個較長的語句列表中的一個true語句即可使OVERALL語句返回true。 那是對的嗎?
是(幾乎)完全正確的。 我要進行的唯一更正是至少在JavaScript上下文中將“ true”替換為“ truthy”。 例如, 3 || 5
3 || 5
是不是true
,但3
-而3
是不是true
,這是 truthy。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.