我明白|| b返回一個對象,而不是布爾值。我只是不知道爲什麼javascript給出了不同的結果爲javascript ||運算符根據命令給出不同的結果
undefined || "" (result is "")
"" || undefined (result is undefined)
我認爲這兩個應該返回「」。 有人可以解釋給我嗎?謝謝!
更新:@Quentin明確回答,「」評估爲false,如果a和b都評估爲false,則|| b將返回b。
我明白|| b返回一個對象,而不是布爾值。我只是不知道爲什麼javascript給出了不同的結果爲javascript ||運算符根據命令給出不同的結果
undefined || "" (result is "")
"" || undefined (result is undefined)
我認爲這兩個應該返回「」。 有人可以解釋給我嗎?謝謝!
更新:@Quentin明確回答,「」評估爲false,如果a和b都評估爲false,則|| b將返回b。
||
運算符測試表達式左側的真實性。如果LHS是真實值,則返回LHS,否則返回RHS。
你可以看到這是如何與if
的一個實際的例子結合:
if (a || b)
a
是真實的,那麼它是一樣的if (a)
這是if (true)
。a
是假的,b
是真的,那麼if (b)
是if (true)
a
和b
都是假的,那麼它是if (b)
這是if (false)
如果你的榜樣,無論""
也不undefined
是真實的值,所以你的兩個測試都會返回RHS。
JavaScript的邏輯OR運算符||
,returns one of its operands。在a || b
中,如果a
爲真,則返回a
,否則返回b
。
你的兩個參數的計算結果都是false
。因此在undefined || ""
中,它返回""
。對於"" || undefined
,它返回undefined
。在這兩種情況下,這是因爲這就是b
的位置。
該||運算符返回評估爲true的第一個參數。如果所有的參數都是假的,那麼它只是返回最後一個參數,不管它是什麼。
你在準確地檢查什麼?你能提供一個更多的上下文的代碼片段嗎? – depperm
僅供參考:JavaScript的'||'操作符不會返回給您一個布爾值。這可能是你困惑的原因。 –
你是對的,我很困惑:)好趕上! – AlliceSmash