Boolean()显式转换为布尔值时,仅6个falsy值返回false:undefined、null、0(含-0和0n)、NaN、''、false;其余均为true;!!等价于Boolean()但更简洁;禁用new Boolean()。

JavaScript 中 Boolean() 是显式转换为布尔值的标准方法,它会根据“真值(truthy)”和“假值(falsy)”规则,把任意类型值转为 true 或 false。
哪些值转成 false?
只有 6 个值调用 Boolean() 会返回 false,它们是公认的 falsy 值:
undefinednull-
0(包括-0和0n,即 BigInt 零) NaN- 空字符串
''(注意:' '、'\n'等含空白字符的字符串仍是 truthy) -
false(本身)
其他所有值都转成 true
只要不是上面那 6 种,一律返回 true。常见例子:
-
Boolean(1)→true -
Boolean('0')→true(字符串非空,哪怕内容是 '0') -
Boolean([])→true(空数组也是 truthy) -
Boolean({})→true(空对象同理) -
Boolean(new Boolean(false))→true(包装对象本身是 truthy,不管内部值)
和双感叹号 !! 的区别
!!value 是隐式转布尔的常用简写,行为与 Boolean(value) 完全一致,只是写法更短。例如:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
-
Boolean('hello') === !!'hello'→true -
Boolean(null) === !!null→true
二者语义相同,选哪个取决于团队风格或可读性偏好;Boolean() 更明确意图,!! 更简洁。
注意事项
别混淆 Boolean 构造函数和 Boolean() 转换函数:
-
Boolean(0)→false(推荐:作为转换函数使用) -
new Boolean(0)→ 返回一个 对象,且该对象是 truthy(因为所有对象都是 truthy)
所以永远用 Boolean(value),不要加 new。

















