多個值參與&&與運算子、||或運算子的結果解析
阿新 • • 發佈:2020-12-11
技術標籤:JavaScriptjs
或運算子( | | )
之前遇到過這樣的函式
function a(){
return value1 || value2 || value3
}
查了一下資料
或運算子 ||
做了如下的事情:
- 從左到右依次計算運算元
- 處理每一個運算元時,都將其轉化為布林值。如果結果是
true
,就停止計算,返回這個運算元的初始值 - 如果所有的運算元都被計算過(也就是,轉換結果都是
false
),則返回最後一個運算元
換句話說,就是返回第一個遇到的真值,如果不存在真值,則返回最後一個值
舉例:
alert(1 || 0) //返回1,1是第一個遇到的真值
alert(0 || false || undefined || true) //返回true,true是第一個遇到的真值
alert(0 || false || undefined) //返回undefined,不存在真值,返回最後一個值
與運算子(&&)
與運算子&&
與或運算子||
相反
- 從左到右依次計算運算元
- 在處理每一個運算元時,都將其轉化為布林值。如果結果是
false
,就停止計算,並返回這個運算元的初始值。 - 如果所有的運算元都被計算過(例如都是真值),則返回最後一個運算元。
返回第一個遇到的假值,如果不存在假值,則返回最後一個值
舉例
alert(1 && {} && undefined) //返回undefined
alert(0 && 1) //返回0
alert(2 && 19 && 3) //返回3