布林值

布林值基元是一種邏輯資料類型,當中只有兩個值:truefalse

布林值物件

JavaScript 中的所有值都是 truefalse。您可以根據該值的隱性 true 或 false 狀態,使用 Boolean 物件將值強制轉換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

由於所有物件本身就是「truthy」,因此產生的布林值物件一律不會評估為 true,即使其包含 false 值也一樣:

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

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

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

隨堂測驗

以下何者會傳回 false

空字串
0
Null.
"none".