ES6 - Boolean 对象
ES6 - 布尔基本类型和对象
Section titled “ES6 - 布尔基本类型和对象”在 JavaScript 中,布尔值表示两个值之一:true 或 false。布尔值是条件逻辑和控制流程的基础。
布尔基本类型
Section titled “布尔基本类型”大多数情况下,你将直接使用布尔基本类型值:
const isEnabled = true;const hasAccess = false;
if (isEnabled) { console.log('Feature is enabled.');} else { console.log('Feature is disabled.');}在 JavaScript 中被视为“假值”(falsy)(即在布尔上下文中会被强制转换为 false)的值有:
false0(零)-0(负零)0n(BigInt 零)""(空字符串)nullundefinedNaN(非数值)
所有其他值都被视为“真值”(truthy),包括空数组 []、空对象 {} 以及非空字符串,例如 ‘false’。
Boolean 对象
Section titled “Boolean 对象”JavaScript 还有一个 Boolean 对象,它是布尔基本类型的包装器。你可以使用 new Boolean() 构造函数创建一个 Boolean 对象:
const boolObject = new Boolean(value);如果 value 被省略或属于上面列出的假值之一,则 Boolean 对象的内部值将为 false。否则,它将为 true。
重要提示: 通常不建议使用 Boolean 对象构造函数 (new Boolean())。因为它会创建一个 对象,而 JavaScript 中的所有对象都是真值,即使它们包装的值是 false 也是如此。这可能会导致令人困惑的行为:
const falseObj = new Boolean(false); // 包装的值是 false
if (falseObj) { // 这个条件是 TRUE,因为 falseObj 是一个对象! console.log('这条日志会打印出来,是不是很意外!');}
// 要获取基本类型值:console.log(falseObj.valueOf()); // false请使用 Boolean() 函数作为转换器来获取布尔基本类型,而不是使用 new Boolean():
const primitiveTrue = Boolean('hello'); // trueconst primitiveFalse = Boolean(0); // false
console.log(typeof primitiveTrue); // "boolean"Boolean 对象属性
Section titled “Boolean 对象属性”Boolean 对象的实例(以及通过自动装箱扩展的布尔基本类型)继承 Boolean.prototype 的属性。
| 属性 | 描述 |
|---|---|
constructor | 返回创建实例原型(prototype)的 Boolean 函数的引用。(继承自 Object.prototype) |
prototype | Boolean.prototype 属性允许你向 Boolean 对象的所有实例添加属性和方法(很少直接修改)。 |
Boolean 对象方法
Section titled “Boolean 对象方法”布尔基本类型和 Boolean 对象可以访问以下方法:
| 方法 | 描述 |
|---|---|
toString() | 返回布尔值的字符串表示形式,即 “true” 或 “false”。 |
valueOf() | 返回 Boolean 对象的原始值(true 或 false)。 |
const bTrue = true;const bFalseObj = new Boolean(false);
console.log(bTrue.toString()); // "true"console.log(bFalseObj.toString()); // "false"
console.log(bTrue.valueOf()); // true (已经是基本类型)console.log(bFalseObj.valueOf()); // false- 始终优先使用布尔基本类型 (
true,false)。 - 理解用于条件判断的真值(
truthy)和假值(falsy)。 - 避免使用
new Boolean()构造函数,以免产生混淆。如果需要进行类型转换,使用Boolean()函数。