JavaScript提供了一個(gè)布爾原始類型,它有true
和false
兩個(gè)值。你可以使用typeof
運(yùn)算符變量的類型,保存布爾值的變量,返回值是boolean
。
除了原始類型boolean
之外,JavaScript還為您提供了全局Boolean()
函數(shù),可以使用Boolean()
函數(shù)將另一個(gè)類型的值轉(zhuǎn)換為布爾值。
Boolean
也是原始類型boolean
的封裝對(duì)象。這意味著當(dāng)您將其中一個(gè)true
或false
傳遞給Boolean
構(gòu)造函數(shù)時(shí),它將創(chuàng)建一個(gè)Boolean
對(duì)象。
下面的示例演示如何使用Boolean()
函數(shù)將字符串轉(zhuǎn)換為布爾值。因?yàn)樽址粸榭眨苑祷?code>true。
let a = Boolean('Hi');
console.log(a); // true
console.log(typeof(a)); // boolean
要Boolean
對(duì)象的原始值,請(qǐng)調(diào)用Boolean
對(duì)象的valueOf()
方法。valueOf()
方法將會(huì)Boolean
對(duì)象轉(zhuǎn)換后的返回的值。
如果你調(diào)用Boolean
對(duì)象的toString()
,你會(huì)得到一個(gè)字符串值"true"
或"false"
。
let b = new Boolean(false);
console.log(b.valueOf()); // false
console.log(b.toString()); // "false"
JavaScript boolean與Boolean區(qū)別
Boolean
是Javascript的一個(gè)對(duì)象,因此您可以向其添加屬性。boolean是原始類型,通常表示一個(gè)值,你不能向其添加屬性。
其次,當(dāng)你使用typeof
運(yùn)算符對(duì)布爾值獲取類型時(shí),原始布爾值返回boolean
。布爾對(duì)象則返回object
。
第三,將instanceof
運(yùn)算符應(yīng)用于Boolean
對(duì)象時(shí),它返回true
。但是,如果您將 instanceof
運(yùn)算符應(yīng)用于布爾值boolean
,它會(huì)返回false
。
let completed = true;
let active = new Boolean(false);
active.primitiveValue = active.valueOf();
console.log(active.primitiveValue); // false
completed.name = 'primitive';
console.log(completed.name); // undefined
console.log(completed instanceof Boolean); // false
console.log(active instanceof Boolean); // true
最好不要使用Boolean
對(duì)象,因?yàn)樗鼤?huì)造成很多混亂,尤其是在表達(dá)式中使用時(shí)。
let falseObj = new Boolean(false);
if (falseObj) {
console.log('weird part of the Boolean object');
}
這里說一下代碼是怎么工作的,首先,創(chuàng)建變量falseObj
,它的值是Boolean
對(duì)象封裝的false
。
變量falseObj
在if
語句中使用時(shí)。因?yàn)?code>falseObj是一個(gè)對(duì)象,JavaScript引擎將其強(qiáng)制轉(zhuǎn)換為true
.。結(jié)果,if
塊內(nèi)的語句被執(zhí)行。
建議您使用Boolean()
函數(shù)將不同類型的值轉(zhuǎn)換為布爾值,但不要將原始布爾值使用Boolean
對(duì)象封裝。
結(jié)論
在本教程中,您了解了JavaScript Boolean
對(duì)象和原始類型boolean
之間的區(qū)別。
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4338瀏覽量
62786 -
javascript
+關(guān)注
關(guān)注
0文章
519瀏覽量
53894 -
boolean
+關(guān)注
關(guān)注
0文章
2瀏覽量
2104
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論