上一篇文章中,我們了解到 JavaScript 動態型別和強制轉型不好的地方,那他們的用處是在哪呢 ? 讓我來談談存在 (Existence) 和布林 (Booleans)。
布林 (Booleans)
我們先將一些值透過 Boolean 這個內建 function 來轉換,像是:
注意:不推薦使用內建 function,但很適合拿來展示用。
1 | Boolean(undefined); // false |
undefined
、null
、""
這些都表示不存在,會轉型成 false
,既然知道有這個特性,我們能好好利用,讓我們寫一些程式來舉例:
我們建立變數 a,透過 if 條件式來判斷,如果 a 有值就輸出 Something is there !
。
補充:在
if ()
條件式中,在()
內的東西會轉換成 boolean (true
或false
)。
1 | var a; |
當程式執行完,什麼都不會出現,這是因為執行環境的創造階段會賦予變數 undefined
, undefined
會轉型成 false
,所以我們可透過強制轉型來檢查 a 是否存在,如果 a 等於 null
或 ""
同樣會被轉型成 false
。
那如果 a 有值呢 ?
a 會轉型成 true
,所以會顯示 Something is there !
。
1 | var a; |
我們可以利用強制轉型的特性來檢查變數是否有值,除了 undefined
、null
、""
的值之外,但現在有個問題,當我們使用數字 0 來判斷時,0 會轉型成 false
,因此我們可以加上 ||
(or) 來多一個條件判斷,這樣就能避免 0 顯示 false
的結果。
1 | var a; |
補充:
||
相依性為 5;===
的相依性為 10,所以===
會優先執行。
1 | var a; |
總結
我們可以透過強制轉型來檢查東西是否存在,與條件式搭配使用。