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');
}
這里說(shuō)一下代碼是怎么工作的,首先,創(chuàng)建變量falseObj,它的值是Boolean對(duì)象封裝的false。
變量falseObj在if語(yǔ)句中使用時(shí)。因?yàn)?code>falseObj是一個(gè)對(duì)象,JavaScript引擎將其強(qiáng)制轉(zhuǎn)換為true.。結(jié)果,if塊內(nèi)的語(yǔ)句被執(zhí)行。
建議您使用Boolean()函數(shù)將不同類型的值轉(zhuǎn)換為布爾值,但不要將原始布爾值使用Boolean對(duì)象封裝。
結(jié)論
在本教程中,您了解了JavaScript Boolean對(duì)象和原始類型boolean之間的區(qū)別。
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4406瀏覽量
66841 -
javascript
+關(guān)注
關(guān)注
0文章
525瀏覽量
56005 -
boolean
+關(guān)注
關(guān)注
0文章
2瀏覽量
2214
發(fā)布評(píng)論請(qǐng)先 登錄
ArkUI-X平臺(tái)橋接Bridge說(shuō)明
[求助]關(guān)于boolean 的local variables的問(wèn)題
VHDL與verilog中if判斷條件的一點(diǎn)小區(qū)別
請(qǐng)問(wèn)TMS470編譯器是否支持定義Boolean類型變量,應(yīng)如何定義
JavaScript 【1】 基礎(chǔ)數(shù)據(jù)類型
JavaScript中十個(gè)內(nèi)置對(duì)象列表及其程序詳解
java中boolean的用法

JavaScript boolean與Boolean區(qū)別
評(píng)論