原始布爾類型包含值true和false泪姨。以下運(yùn)算符產(chǎn)生布爾值:
二進(jìn)制邏輯運(yùn)算符:&&(And)枣宫,||(Or)
前綴邏輯運(yùn)算符:(!不)
比較運(yùn)算符:
平等運(yùn)營商:===,!==,==靶端,!=
訂購運(yùn)營商(為字符串和數(shù)字)>,>=,<赃泡,<=
真假
每當(dāng)JavaScript需要布爾值時(shí)(例如页屠,針對(duì)if語句的條件)镐捧,都可以使用任何值由驹。它將被解釋為true或false荤西。以下值解釋為false:
undefined, null
布爾值: false
編號(hào):0蜕企,NaN
串: ''
考慮所有其他值(包括所有對(duì)象:痹)true根灯。值將解釋為false被稱為falsy和值理解為true被稱為truthy桃笙。Boolean()稱為函數(shù)星著,將其參數(shù)轉(zhuǎn)換為布爾值。您可以使用它來測試值的解釋方式:
>布爾值(未定義)
假
>布爾值(0)
假
>布爾值(3)
真正
> Boolean({})//空對(duì)象
真正
> Boolean([])//空數(shù)組
真正
二元邏輯運(yùn)算符
JavaScript中的二進(jìn)制邏輯運(yùn)算符正在短路。即茎刚,如果第一操作數(shù)足以確定結(jié)果,則不評(píng)估第二操作數(shù)敲霍。例如,在以下表達(dá)式中兵拢,foo()永遠(yuǎn)不會(huì)調(diào)用該函數(shù):
false && foo()
true? || foo()
此外,二進(jìn)制邏輯運(yùn)算符返回其操作數(shù)之一-可以是布爾值焰枢,也可以不是布爾值蚓峦。真實(shí)性檢查用于確定哪個(gè):
和(&&)
如果第一個(gè)操作數(shù)為假,則將其返回济锄。否則暑椰,返回第二個(gè)操作數(shù):
> NaN &&'abc'
N
> 123 &&'abc'
'abc'
或(||)
如果第一個(gè)操作數(shù)為真,則將其返回荐绝。否則一汽,返回第二個(gè)操作數(shù):
>'abc'|| 123
'abc'
>” || 123
123
相等運(yùn)算符
JavaScript有 兩種相等:
正常,或“兼容的”,不相等:==和!=
嚴(yán)格的(不相等的):===和!==
普通相等認(rèn)為(太多)值相等(詳細(xì)信息在“ 普通(長度)相等”(==召夹,岩喷!=)中進(jìn)行了解釋),這可能會(huì)掩蓋錯(cuò)誤监憎。因此纱意,建議始終使用嚴(yán)格相等。