JavaScript中的布爾值
布爾值代表真或假,開或關(guān),是或否。在這個類型中只有兩個值:true和false。
JavaScript中的布爾值通常是比較操作的結(jié)果。例如:
上面的代碼測試變量a
的值是否等于數(shù)字4。如果是,返回true;否則返回false。
布爾值在JavaScript的控制結(jié)構(gòu)中經(jīng)常被使用。例如,在if/else語句中,當(dāng)布爾值為true時執(zhí)行一個操作,當(dāng)布爾值為false時執(zhí)行另一個操作。我們通常會將產(chǎn)生布爾值的比較表達(dá)式直接放在使用這些值的語句中。代碼可能如下所示:
上面的代碼檢查a
是否等于4。如果是,將b
增加1;否則,將a
增加1。
JavaScript中的任何值都可以轉(zhuǎn)換為布爾值。以下值將被轉(zhuǎn)換為(并且可以被用作)布爾值false
:
(程序員的軟技能:ke.qq.com/course/6034346)
其他所有值,包括所有對象(和數(shù)組),都會被轉(zhuǎn)換為(可以被用作)布爾值true
。值false
例如,假設(shè)變量o
保存了一個對象或值null
。您可以這樣測試是否非空:
通過使用非嚴(yán)格不等號運算符!==
來比較o
和null
,結(jié)果將是true或false。然而,您也可以省略比較,直接依賴于null是falsy而對象是truthy的事實:
在第一種情況下,if語句的主體只在o
不是null
時執(zhí)行。第二種情況不那么嚴(yán)格 - 只要o
不是false
或任何其他falsy值(如null
或undefined
),主體就會執(zhí)行。選擇哪種if語句適合您的程序取決于您希望在o
中存儲什么值。如果您需要區(qū)分null
和0
或""
,那么使用比較表達(dá)式是合適的。
布爾值具有toString()
方法,將它們轉(zhuǎn)換為字符串"true"或"false"。除了這個非常簡單的API外,還有三個重要的布爾運算符。
&&
運算符執(zhí)行布爾與操作。它只在兩個操作數(shù)都為true時評估為true;如果任何操作數(shù)為false,則結(jié)果為false。||
運算符執(zhí)行布爾或操作。如果任何一個操作數(shù)為true,則評估為true;只有在兩個操作數(shù)都為false時,結(jié)果才為false。一元!
運算符執(zhí)行布爾非操作。如果操作數(shù)為false,則結(jié)果為true;如果操作數(shù)為true,則結(jié)果為false。例如:
(程序員的軟技能:ke.qq.com/course/6034346)