javascript 中只有6个 falsy 值:false、0、-0、0n、""、null、undefined、nan;其余均为 truthy,需显式判断区分 0 和 "" 等场景。

JavaScript 中 if 语句会自动对条件表达式进行**隐式布尔转换**(ToBoolean),利用这一点可以简洁地判断空字符串 "" 和数字 0 —— 因为它们都是**falsy 值**。
哪些值在 if 中会被当作 false?
JS 中只有 6 个 falsy 值:false、0、-0、0n(BigInt 零)、""(空字符串)、null、undefined、NaN。注意:"0"、"false"、[]、{} 都是 truthy,容易误判。
直接用 if 判断 0 和空字符串
因为 0 和 "" 是 falsy,下面写法能“跳过”它们:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
-
if (str) { ... }→ 当str === ""时,分支不执行 -
if (num) { ... }→ 当num === 0(或-0、NaN)时,分支不执行
但要注意歧义:0 和 "" 无法区分
隐式转换只告诉你“是 falsy”,不告诉你“到底是哪个”。比如:
-
if (!value) console.log("falsy");对0、""、null都会打印 - 若业务需要**单独处理 0 或空字符串**(例如表单中允许输入 "0" 但不允许留空),就不能只靠
if (value) - 推荐显式判断:
if (value === "" || value === 0)或if (value == null || value === "" || value === 0)
安全写法建议
多数场景下,更推荐兼顾清晰与健壮的写法:
- 检查是否为有效字符串(非空且非空白):
if (typeof str === 'string' && str.trim() !== '') - 检查是否为有效数字(排除 0、NaN、null):
if (typeof num === 'number' && !isNaN(num) && num !== 0) - 若真要依赖隐式转换,加注释说明意图,例如:
// 利用 falsy 判断空值或零值
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










