JavaScript Boolean 对象

Boolean 是 JavaScript 中的一个基本数据类型,用于表示逻辑上的“真”(true)或“假”(false)。它有两个字面量值:truefalse。你也可以使用 Boolean 构造函数来创建一个 Boolean 对象。

1. 创建 Boolean 对象

你可以通过以下几种方式创建一个 Boolean 对象:

字面量方式

直接使用 truefalse,这是最常见的用法。

let isActive = true;
let isDone = false;

使用 Boolean() 构造函数

Boolean() 可以将其他数据类型转换为布尔值(truefalse)。

let isTrue = Boolean(1);  // true,因为非零数值会被转换为 true
let isFalse = Boolean(0); // false,因为 0 被转换为 false

2. Boolean 对象的属性和方法

Boolean 类型本身是一个原始值,因此并不像其他对象类型那样具有属性和方法。不过,Boolean 对象通过装箱机制(boxing)会临时转换为一个 Boolean 对象,允许你访问一些方法。常用的属性和方法包括:

valueOf() 方法:

返回布尔对象的原始值(truefalse)。

let boolObj = new Boolean(false);
console.log(boolObj.valueOf());  // false

3. 布尔值转换规则

JavaScript 中有一些规则,决定了其他类型的数据会被转换成 truefalse

转换为 false 的值(Falsy 值):

  1. false
  2. 0(数字零)
  3. -0(负零)
  4. NaN(非数字)
  5. ""(空字符串)
  6. null
  7. undefined

例如:

console.log(Boolean(0));         // false
console.log(Boolean(""));        // false
console.log(Boolean(null));      // false
console.log(Boolean(undefined)); // false

转换为 true 的值(Truthy 值):

所有其他值都被认为是 true,包括非空字符串、非零数字、对象、数组等。

例如:

console.log(Boolean(1));        // true
console.log(Boolean("Hello"));  // true
console.log(Boolean({}));       // true
console.log(Boolean([1, 2, 3])); // true

4. 布尔值的比较

在 JavaScript 中,布尔值可以直接用于条件判断,以下是一些常见的示例:

let isActive = true;
if (isActive) {
  console.log("The status is active.");  // 该条件为真时执行
}

let isComplete = false;
if (!isComplete) {
  console.log("The task is not complete.");  // 该条件为假时执行
}

5. 与其他类型的比较

布尔值可以与其他数据类型进行比较,JavaScript 会隐式地进行类型转换:

console.log(true == 1);   // true, 因为 true 被转换为 1
console.log(false == 0);  // true, 因为 false 被转换为 0
console.log(true === 1);  // false, 严格比较时类型不相同

6. Boolean 对象与布尔字面量的区别

虽然 Boolean 对象和布尔字面量(truefalse)看起来相似,它们之间有一些重要的区别:

  • truefalse 是布尔原始值。
  • new Boolean(true)new Boolean(false)Boolean 对象实例,且这些对象总是被认为是 true,即使它们的值是 false

例如:

let boolPrimitive = true;
let boolObject = new Boolean(false);

console.log(boolPrimitive); // true
console.log(boolObject);    // Boolean { false }

console.log(boolObject == false);  // true, 因为对象的 `valueOf()` 返回 `false`
console.log(boolObject === false); // false, 因为类型不同

总结

  • Boolean 是 JavaScript 中用于表示逻辑值 truefalse 的基本类型。
  • 可以通过 Boolean() 函数将其他类型的值转换为布尔值。
  • 通过 Boolean 构造函数创建的对象可以使用 valueOf() 方法获取原始布尔值。
  • 在条件判断中,JavaScript 会根据一系列规则自动将其他类型的值转换为布尔值。