====================本系列文章沒有什麼高深的理論====================
====================純粹是以一個菜雞的視角來分享====================

前面說到了 AND && 跟 OR || 分別代表了「且」跟「或」的意思,但是為什麼前面範例的結果不是 true 跟 false 呢?
const cat = 456;
const dog = "dog";
const bear = null;
console.log(cat && dog); // "dog"
console.log(bear && cat); // null
console.log(cat || dog); // 456
console.log(bear || dog); // "dog"
console.log(bear || cat); // 456
簡單來說透過 && 或是 \\ 所產生的值不一定會是布林值 (Boolean),而是兩者的其中之一。
&& 跟 || 運算子在判斷時,會先以「左邊」的數值開始進行:
布林類型(Boolean)就會再做後續的判斷。
ToBoolean 判斷是「falsy」或是「truthy」才轉換成對應的 true 或是 false。
|| 運算子來講,假如第一個數值轉換為 true,那麼就會回傳第一個數值,否則會回傳第二個數值。
&& 運算子來講,假如第一個數值轉換為 true,那麼就會回傳第二個數值,否則會回傳第一個數值。
在 if 的條件判斷中,JavaScript 會針對回傳的數值,再度做一次 ToBoolean 的判斷是否為「falsy」或「truthy」,這也是為什麼在 if 判斷式中,可以使用 && 跟 || 的原因了,只是平常都會搭配 if 判斷式使用,所以也會讓人誤以為 && 跟 || 只會回傳 true 跟 false 的結果。
今日的分享就到這囉,我們明天見,掰掰!