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文章
4417瀏覽量
67501 -
javascript
+關注
關注
0文章
526瀏覽量
56321 -
boolean
+關注
關注
0文章
2瀏覽量
2222
發布評論請先 登錄
ArkUI-X平臺橋接Bridge說明
[求助]關于boolean 的local variables的問題
VHDL與verilog中if判斷條件的一點小區別
JavaScript 【1】 基礎數據類型
JavaScript中十個內置對象列表及其程序詳解
java中boolean的用法
JavaScript boolean與Boolean區別
評論