JavaScript中假值共8个:false、0、-0、0n、""、null、undefined、NaN;它们在布尔上下文中被转为false,其余均为真值。

JavaScript 中逻辑或赋值运算符(||=)会在左侧变量为假值(falsy)时,将其赋值为右侧的值,常用于设置默认值。
什么是假值?
JavaScript 中的假值包括:false、0、-0、0n(BigInt 零)、""(空字符串)、null、undefined、NaN。只要变量是其中之一,||= 就会触发赋值。
语法和基本用法
variable ||= defaultValue; 等价于:
if (!variable) variable = defaultValue;
在调试 Java 后端 API 故障时使用此技能,尤其适用于以下任务:分析日志、跨 Controller、Service 和 Mapper 层追踪请求、定位异常根因、检查 SQL 执行或参数流转,以及生成简洁的诊断结论与修复方案。
它只在 variable 为假值时才执行赋值,否则保持原值不变。
-
let name; name ||= "游客";→name是undefined(假值),赋值为"游客" -
let count = 0; count ||= 10;→0是假值,所以count变成10 -
let title = "首页"; title ||= "默认标题";→"首页"是真值,不覆盖,title仍为"首页"
注意:它和空值合并(??=)的区别
||= 基于“假值”判断,而 ??= 只在左侧为 null 或 undefined 时才赋值。
-
let price = 0; price ||= 99;→ 结果是99(因为0是假值) -
let price = 0; price ??= 99;→ 结果仍是0(因为0不是null或undefined)
如果默认值只应在真正“缺失”(而非“为零/为空”)时生效,优先用 ??=;如果希望所有假值都触发兜底,则用 ||=。
常见使用场景
- 函数参数未传或传了空值时补默认值:
function greet(name) { name ||= "朋友"; return `你好,${name}!`; } - 对象属性初始化:
obj.config ||= {}; obj.config.timeout ||= 5000; - 避免重复计算默认值(右侧表达式只在需要时求值):
options.logLevel ||= getLogLevelFromEnv();—— 若options.logLevel已存在,getLogLevelFromEnv()不会调用
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










