Boolean()将6个假值转为false:false、0(含-0和0n)、""、null、undefined、NaN;其余均为true;推荐自动转换而非显式调用,!!是其等效简写。

JavaScript 中的 Boolean() 函数用于将任意值显式转换为布尔类型(true 或 false),它遵循 JavaScript 的“真值(truthy)”和“假值(falsy)”规则,不依赖于变量类型本身,而是依据值在逻辑判断中的表现。
哪些值会被转成 false?
以下 6 个值调用 Boolean() 时返回 false,它们被称为“假值(falsy values)”:
false-
0(包括-0和0n,即 BigInt 零) -
""(空字符串) nullundefinedNaN
其余所有值(包括 "false"、"0"、[]、{}、new Boolean(false) 等)都会返回 true。
常见误用提醒
注意这些容易混淆的情况:
立即学习“Java免费学习笔记(深入)”;
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
Boolean("false")→true(非空字符串是 truthy) -
Boolean("0")→true(同上) -
Boolean(new Boolean(false))→true(对象包装器总是 truthy) -
Boolean({})和Boolean([])→ 都是true(空对象/数组仍是 truthy)
实际使用建议
多数情况下,不需要显式写 Boolean(value)。JavaScript 在 if、while、逻辑运算等上下文中会自动进行 ToBoolean 转换:
- ✅ 推荐:
if (value) { ... } - ✅ 推荐:
value && doSomething() - ⚠️ 少用:
if (Boolean(value)) { ... }(冗余,无额外好处)
仅在需要明确获取布尔值(比如调试、赋值给布尔字段、或与后端约定返回 true/false 时)才显式调用 Boolean()。
对比双感叹号(!!)操作符
!!value 是 Boolean(value) 的简写形式,原理是:第一次 ! 转为布尔并取反,第二次再取反,结果一致:
-
!!"hello"等价于Boolean("hello")→true -
!!null等价于Boolean(null)→false
两者行为完全相同,选择取决于团队可读性偏好;!! 更简洁,Boolean() 更语义清晰。

















