JavaScript提供了一個布爾原始類型,它有true
和false
兩個值。你可以使用typeof
運算符變量的類型,保存布爾值的變量,返回值是boolean
。
除了原始類型boolean
之外,JavaScript還為您提供了全局Boolean()
函數,可以使用Boolean()
函數將另一個類型的值轉換為布爾值。
Boolean
也是原始類型boolean
的封裝對象。這意味著當您將其中一個true
或false
傳遞給Boolean
構造函數時,它將創建一個Boolean
對象。
下面的示例演示如何使用Boolean()
函數將字符串轉換為布爾值。因為字符串不為空,所以返回true
。
let a = Boolean('Hi');
console.log(a); // true
console.log(typeof(a)); // boolean
要Boolean
對象的原始值,請調用Boolean
對象的valueOf()
方法。valueOf()
方法將會Boolean
對象轉換后的返回的值。
如果你調用Boolean
對象的toString()
,你會得到一個字符串值"true"
或"false"
。
let b = new Boolean(false);
console.log(b.valueOf()); // false
console.log(b.toString()); // "false"
JavaScript boolean與Boolean區別
Boolean
是Javascript的一個對象,因此您可以向其添加屬性。boolean是原始類型,通常表示一個值,你不能向其添加屬性。
其次,當你使用typeof
運算符對布爾值獲取類型時,原始布爾值返回boolean
。布爾對象則返回object
。
第三,將instanceof
運算符應用于Boolean
對象時,它返回true
。但是,如果您將 instanceof
運算符應用于布爾值boolean
,它會返回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
對象,因為它會造成很多混亂,尤其是在表達式中使用時。
let falseObj = new Boolean(false);
if (falseObj) {
console.log('weird part of the Boolean object');
}
這里說一下代碼是怎么工作的,首先,創建變量falseObj
,它的值是Boolean
對象封裝的false
。
變量falseObj
在if
語句中使用時。因為falseObj
是一個對象,JavaScript引擎將其強制轉換為true
.。結果,if
塊內的語句被執行。
建議您使用Boolean()
函數將不同類型的值轉換為布爾值,但不要將原始布爾值使用Boolean
對象封裝。
結論
在本教程中,您了解了JavaScript Boolean
對象和原始類型boolean
之間的區別。
-
函數
+關注
關注
3文章
4307瀏覽量
62433 -
javascript
+關注
關注
0文章
516瀏覽量
53793 -
boolean
+關注
關注
0文章
2瀏覽量
2098
發布評論請先 登錄
相關推薦
評論