在計(jì)算機(jī)科學(xué)中,布爾值是邏輯數(shù)據(jù)類型,只能具有true或false值。
為此,JavaScript具有布爾數(shù)據(jù)類型。它只能采用true或false值。
let x = true; let y = false;測試看看?/?
該Boolean()函數(shù)可用于查找表達(dá)式是否為true:
Boolean(10 < 22) // 返回 true測試看看?/?
或者,您也可以使用以下語法:
(5 > 10) // 返回 false (5 < 10) // 返回 true ("Apple" === "Apple") // 返回 true測試看看?/?
在JavaScript中,布爾條件條件通常用于確定要執(zhí)行代碼的哪些部分(例如if語句中)或重復(fù)執(zhí)行(例如for循環(huán)中)。
下面是一些JavaScript偽代碼(不是真正的可執(zhí)行代碼),它證明了這一概念。
/* JavaScript if語句 */ if (boolean conditional) { // 條件為真時(shí)執(zhí)行的代碼 } if (boolean conditional) { console.log("布爾條件檢測結(jié)果為true"); } else { console.log("布爾條件檢測結(jié)果為false"); } /* JavaScript for 循環(huán) */ for (control variable; boolean conditional; counter) { // 如果條件為真,則重復(fù)執(zhí)行的代碼 } for (var i = 0; i < 4; i++) { console.log("僅在布爾條件為true時(shí),才打印"); }
以下是布爾條件的一些示例:
操作符 | 描述 | 例 |
---|---|---|
== | 等于 | if (month == "July") |
> | 大于 | if (age > 18) |
< | 少于 | if (age < 18) |
所有值,包括任何對象或字符串“ false”,都會創(chuàng)建一個(gè)初始值true。
Boolean(50); // 返回 true Boolean(-50); // 返回 true Boolean(3.14);// 返回 true Boolean("Hello"); // 返回 true Boolean("false"); // 返回 true測試看看?/?
如果一個(gè)值被省略或?yàn)?,-0,null,false,NaN,undefined或空字符串(“”),則該對象的初始值為false。
布爾值0(零)為false:
var x = 0; Boolean(x); // 返回 false測試看看?/?
布爾值-0(減零)為false:
var x = -0; Boolean(x); // 返回 false測試看看?/?
null的布爾值是false:
var x = null; Boolean(x); // 返回 false測試看看?/?
false的布爾值為false:
var x = false; Boolean(x); // 返回 false測試看看?/?
NaN的布爾值是false:
var x = 50 / "Parrot"; // x will be NaN (Not a Number) Boolean(x); // 返回 false測試看看?/?
undefined的布爾值是false:
var x; Boolean(x); // 返回 false測試看看?/?
空字符串(“”)的布爾值是false:
var x = ""; Boolean(x); // 返回 false測試看看?/?
通常,JavaScript布爾值是從字面量創(chuàng)建的原始值:
var x = false;
但是,也可以使用 new關(guān)鍵字將布爾值定義為對象:
var x = new Boolean(false);
為了測試兩者之間的差異,我們將初始化一個(gè)布爾基元和一個(gè)布爾對象。
var x = false; var y = new Boolean(false); typeof x// 返回 boolean typeof y// 返回 object測試看看?/?
注意:請勿將布爾值創(chuàng)建為對象。這會降低執(zhí)行速度,并會產(chǎn)生一些意外的結(jié)果。
使用==運(yùn)算符時(shí),相等的布爾值相等:
var x = false; var y = new Boolean(false); document.write(x == y); // 返回true,因?yàn)閤和y具有相等的值測試看看?/?
使用===運(yùn)算符時(shí),相等的布爾值不相等,因?yàn)?==運(yùn)算符期望值和類型都相等:
var x = false; var y = new Boolean(false); document.write(x === y); // 返回false,因?yàn)閤和y具有不同的類型測試看看?/?
對象無法比較:
var x = new Boolean(false); var y = new Boolean(false); document.write(x == y); // 因?yàn)閤和y是不同的對象,所以返回false document.write(x === y); // 因?yàn)閤和y是不同的對象,所以返回false測試看看?/?
注意(==)和(===)之間的區(qū)別。比較兩個(gè)JavaScript對象將始終返回false。
有關(guān)完整的屬性和方法參考,請?jiān)L問我們的JavaScript布爾參考。
參考部分包含所有布爾屬性和方法的描述和示例。