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

