返回列表 發帖

邏輯運算子 || (OR) 跟 &&(AND) 的傳回值不只是true

邏輯運算子 || (OR) 跟 &&(AND) 的傳回值不只是true

邏輯運算子  || (OR)  跟 && (AND): 在傳回運算結果時,有個特別的地方...
就是如果是傳回值是true那會傳回決定這結果的運算元的那個值(或物件),而不是單純傳回布林值的true
那如果運算元兩邊都是真呢?
OR運算子會傳回運算元左邊的值
AND會傳回運算元右邊的值
來看這例子
var x=5;
var y=2;
alert (x || y); =>OR 運算子 兩邊都為真 ,輸出左邊的運算元 5 結果為 true
alert (x && y); =>AND 運算子 兩邊都為真 ,輸出右邊的運算元 2 結果為 true
alert (x==5 || y); =>輸出true
alert (x && y==2); =>輸出true
好像很多程式語言的 AND  跟 OR 運算子都有這樣的特性,不只是javascript 邏輯運算子會這樣。
不過我其實不太記得了,好像也很少人會去在意邏輯運算子最後傳回啥。知道是True 還是 False就好...
不過當你下次再看到像這樣的程式時:
var oldonload = window.onload || function () {};
就會知道,他是在判斷假如window.onload有設定,那傳回window.onload,沒有的話就建立一個新的函式。
這東西也是我突然想起來的 很少看到人提起,大家參考一下,有錯的話請不吝惜指教...
參考網頁:邏輯運算子 || (OR) 跟 &&(AND) 的傳回值不只是true

返回列表 回復 發帖