一、Boolean值是什麼?
任何的JavaScript值都可以轉換成為一個boolean值
下列的值會轉換成false:
除了上面之外,其他所有的值,包括物件和陣列,都會轉換為true
換句話說,只有少部分的值會被解析成false,我們稱這些值叫做 falsy value。
而其他的值叫做truthy value。
二、Boolean 如何在JavaScript中被控制?
能夠根據Boolean值的true和false,而採取行動的是if else述句。
任何物件,包含原本是false的布林物件,當放在條件式內時,會被視為true:
const x = new Boolean(false); // x為Boolean{false}
if (x) {
// this code is executed
}
上面被視為true的行為,在布林的原始型別(primitives)是不會有的。
PS. x使用 typeof 測試型別為布林值,表示x為false,不會執行 if 內的計算:
const x = false;
if (x) {
// this code is not executed
}
三、將值轉換為Boolean的方法?
const x = !!x; // x 為true
const y = Boolean(y); // y 為true
注意,不可使用Boolean的構造函數 new Boolean() 去轉換非布林的值變成布林值,如要轉換,請使用Boolean或者 !! (布林反轉) 來做轉換。
const good = Boolean(expression); // use this
const good2 = !!expression; // or this
const bad = new Boolean(expression); // don't use this!
const myFalse = new Boolean(false); // initial value of false myFalse 是true
const g = Boolean(myFalse); // initial value of true g是false
const myString = new String("Hello"); // string object myString是true
const s = Boolean(myString); // initial value of true s是true
Reference
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean