JavaScript中Boolean類型的實現(xiàn)示例
Boolean(布爾值)類型有兩個字面值:true和false。 這兩個布爾值不同于數(shù)值,因此 true 不等于 1,false 不等于 0。
雖然布爾值只有兩個,但所有其他類型的值都有相應(yīng)布爾值的等價形式,可以調(diào)用特定的Boolean() 轉(zhuǎn)型函數(shù):
let message = "Hello world!"; let messageAsBoolean = Boolean(message);
Boolean()轉(zhuǎn)型函數(shù)可以在任意類型的數(shù)據(jù)上調(diào)用,而且始終返回一個布爾值。
下面是不同類型與布爾值之間的轉(zhuǎn)換規(guī)則:
| 數(shù)據(jù)類型 | Truthy(真值) | Falsy(假值) |
|---|---|---|
| Boolean | true | false |
| String | 非空字符串 | ""(空字符串) |
| Number | 非零數(shù)值(包括無窮值) | 0、-0、NaN |
| Object | 任意對象,包括空數(shù)組 []和空對象 {} | null |
| Undefined | N/A(不存在) | undefined |
直接賦值
最直接的方式。
let isActive = true; let isLoading = false;
通過表達式
比較或邏輯運算的結(jié)果是布爾值。
let isGreater = 5 > 3; // true let isEqual = (10 === "10"); // false let logicResult = (5 > 3) && (4 <= 4); // true
顯式轉(zhuǎn)換
使用 Boolean()函數(shù)或雙重非運算符 !!。
// 使用 Boolean() 函數(shù)
console.log(Boolean("Hello")); // true (非空字符串是 truthy)
console.log(Boolean(0)); // false (0 是 falsy)
console.log(Boolean({})); // true (空對象是 truthy)
// 使用 !! 運算符,效果相同但更簡潔
console.log(!!"Hello"); // true
console.log(!!0); // false
不建議使用Boolean構(gòu)造函數(shù)(通過 new關(guān)鍵字):
// 創(chuàng)建原始布爾值
let primitiveTrue = true;
// 創(chuàng)建 Boolean 對象
let objectTrue = new Boolean(true);
console.log(typeof primitiveTrue); // "boolean"
console.log(typeof objectTrue); // "object"
// 即使包裝的對象值為 false,其本身作為對象在條件判斷中仍為 true
let objectFalse = new Boolean(false);
if (objectFalse) {
console.log("This will be executed."); // 這行會被執(zhí)行
}
布爾值的應(yīng)用
//條件判斷:控制代碼分支。
let isLoggedIn = true;
if (isLoggedIn) {
console.log("Welcome back!");
} else {
console.log("Please log in.");
}
//循環(huán)控制:決定循環(huán)是否繼續(xù)執(zhí)行。
let count = 0;
while (count < 5) { // 條件為 true 時循環(huán)繼續(xù)
console.log(count);
count++;
}
//函數(shù)返回:函數(shù)常用布爾值返回操作結(jié)果或狀態(tài)檢查。
function isAdult(age) {
return age >= 18;
}
let canVote = isAdult(20); // true
//數(shù)據(jù)過濾:例如,結(jié)合數(shù)組的 filter方法快速過濾出有效項。
const mixedArray = [1, 0, "hello", "", null, 42];
const truthyValues = mixedArray.filter(Boolean); // [1, "hello", 42]
// Boolean 函數(shù)作為回調(diào),會自動過濾掉所有 falsy 值
到此這篇關(guān)于JavaScript中Boolean類型的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)JavaScript Boolean類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
避免在前端項目中出現(xiàn)重復(fù)的第三方依賴包的檢測方法
在現(xiàn)代前端開發(fā)中,重復(fù)的第三方依賴包(Duplicate Dependencies)是導(dǎo)致項目體積膨脹、加載速度變慢、構(gòu)建時間延長的常見問題,尤其在使用模塊打包工具時,所以本文給大家介紹了避免在前端項目中出現(xiàn)重復(fù)的第三方依賴包的檢測方法,需要的朋友可以參考下2025-06-06
微信小程序開發(fā)之tabbar圖標和顏色的實現(xiàn)
這篇文章主要介紹了微信小程序開發(fā)之tabbar圖標和顏色的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10
詳解JavaScript如何準確獲取任意變量的數(shù)據(jù)類型
js是弱類型語言,或者說是動態(tài)語言,在定義變量時我們可以不提前聲明變量的類型,也可以在變量聲明后賦予不同類型的值。所以本文為大家詳解一下JavaScript如何準確獲取任意變量的數(shù)據(jù)類型,需要的可以參考一下2022-06-06
小程序與內(nèi)嵌webview的數(shù)據(jù)交互方案詳解
這篇文章主要介紹了小程序與內(nèi)嵌webview的數(shù)據(jù)交互方案,為實現(xiàn)H5頁面到小程序的無縫切換,技術(shù)方案包含使用webview交互,特別是低碼C端表單頁面的處理,需要的朋友可以參考下2024-09-09

