布尔值

布尔基元是逻辑数据类型,仅有两个值:truefalse

布尔值对象

JavaScript 中的所有值都隐式地为 truefalseBoolean 对象 可用于将值强制转换为 truefalse 布尔值,具体取决于其隐式 true 或 false 状态 值:

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"