布林值

布林值原始類型是邏輯資料類型,只有兩個值:truefalse

布林值物件

JavaScript 中的所有值都是隱含的 truefalseBoolean 物件可用於根據該值的隱含 true 或 false 狀態,強制將值轉換為 truefalse 布林值:

Boolean( "A string literal" );
> true

產生 false 的值包括 0nullundefinedNaN、空字串 ("")、省略的值,以及 false 布林值。所有其他值都會產生 true

Boolean( NaN );
> false

Boolean( -0 );
> false

Boolean( 5 );
> true

Boolean( "false" ); // the value `"false"` is a string, and therefore implicitly true.
> true

請勿將 Boolean 物件用作建構函式。它會建立含有布林值的物件,而不是您預期的布林值原始值:

const falseBoolean = Boolean( 0 );
const falseObject = new Boolean( 0 );

console.log( falseBoolean  );
> false

console.log( falseObject  );
> Boolean { false }

falseObject.valueOf();
> false

由於所有物件本質上都是真值,因此即使產生的布林值物件包含 false 值,也會一律鬆散評估為 true:

const falseBoolean = Boolean( 0 );
const falseObject = new Boolean( 0 );

console.log( falseBoolean == true );
> false

console.log( falseObject == true );
> true

進行隨堂測驗

以下何者會傳回 false

空字串
0
null
"none"