一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

JavaScript 的 Boolean 构造函数如何创建对象

时间:2026-07-14 11:25:46 编辑:袖梨 来源:一聚教程网

用 Boolean 构造函数创建的是包装对象而非原始布尔值,所有 Boolean 对象在布尔上下文中均为真值;应使用 Boolean(value) 或 !!value 获取原始布尔值,避免 new Boolean(value)。

Boolean 构造函数创建的是包装对象,不是原始布尔值。例如:

const b1 = new Boolean(true);   // 创建 Boolean 对象const b2 = new Boolean(false);  // 也是对象,不是 false 原始值

⚠️ 注意:这种写法不推荐用于逻辑判断,因为所有 Boolean 对象都是真值(即使包装的是 false):

if (new Boolean(false)) {  console.log('这会执行!'); // ✅ 实际上会进入 if 分支}

原因是:任何对象(包括 new Boolean(false))在布尔上下文中都视为 true


如何正确得到布尔值

直接调用 Boolean() 不加 new,它会执行类型转换,返回原始布尔值:

立即学习“Java免费学习笔记(深入)”;

Boolean(0);        // falseBoolean("");        // falseBoolean(null);     // falseBoolean(undefined); // falseBoolean(NaN);      // falseBoolean(1);        // trueBoolean("hello");  // trueBoolean([]);       // true(空数组也是 true)Boolean({});       // true

这是最常用、最安全的方式,等价于 !!value


什么时候会用到 new Boolean()

几乎不需要。ECMAScript 规范明确建议避免使用 new Boolean(),因为:

  • 容易引发意外的真值判断;

  • 与原始布尔值行为不一致(比如 === 比较会失败):

    new Boolean(true) === true;     // falsenew Boolean(true) == true;      // true(抽象相等,有类型转换)
  • 增加内存开销(对象比原始值更重)。


总结建议

  • ✅ 需要布尔值 → 用 Boolean(value)!!value
  • ❌ 避免 new Boolean(value),除非你明确需要一个可扩展的布尔包装对象(极少见)
  • ? 不要用 new Boolean() 做条件判断依据

不复杂但容易忽略。

热门栏目