JavaScript中仅有false、0(含±0)、""、null、undefined、NaN这6个假值,其余所有值均为真值;逻辑运算符返回原值而非布尔值,显式转换推荐Boolean()或!!。

JavaScript 逻辑判断中真正起作用的不是只有 true 和 false 这两个布尔字面量,而是“真值(truthy)”和“假值(falsy)”这一套隐式转换规则。理解它,才能写出稳定、不易出错的条件逻辑。
哪些值会被当作 false(falsy 值)
JS 中只有且仅有 6 个值在 if、&&、||、三元运算符等上下文中被当作 false 处理:
-
false(布尔字面量本身) -
0、-0(数字零,但0n是 truthy) -
""(空字符串,注意:" "或"0"都是 truthy) nullundefinedNaN
哪些值会被当作 true(truthy 值)
除了上面 6 个,其余所有值都是 truthy,哪怕看起来“空”或“无效”:
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
-
[](空数组)、{}(空对象)—— 所有对象(含函数、正则、Date)都是 truthy -
"false"、"0"、"null"、" "—— 非空字符串一律 truthy -
new Boolean(false)—— 包装对象是对象,所以是 truthy(⚠️别这么写) -
42、-1、Infinity、0.0001—— 任何非零数字都是 truthy
逻辑运算符返回的是值,不是布尔
&& 和 || 不返回 true 或 false,而是返回参与运算的某个原始值:
-
a || b:返回第一个 truthy 值;都 falsy 就返回最后一个(0 || "" || null→null) -
a && b:返回第一个 falsy 值;都 truthy 就返回最后一个("hello" && 42→42) -
!总是返回布尔值(!0→true,!![]→true)
显式转布尔该怎么做
需要明确得到 true 或 false 时,推荐用:
-
Boolean(value)—— 语义清晰,可读性好 -
!!value—— 简洁常用,效果等价(!!"abc"→true) - 避免
value === true或value == true—— 它们只匹配布尔true,会漏掉"yes"、[1]等常见 truthy 场景
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










