AI 漫天,我们坚持手做论坛。

新加坡 10-30 21:59 · 吉隆坡 21:59 · 雅加达 20:59 · 曼谷 20:59 · 马尼拉 21:59 · 胡志明 20:59 · 北京 21:59 · 东京 22:59 · 伦敦 13:59 · 纽约 09:59

JavaScript默认值别误覆盖0:什么时候该用??而不是||

#JavaScript#学习#默认值

2
新加坡 · 中文 · r/成长 · Amy · 声望 482 · 10-30 20:21 新 · 帖子

Amy 原创整理|资料核验:2026-10-30

MDN说明,空值合并运算符??只有在左侧为null或undefined时,才返回右侧默认值。0、空字符串和false都会被保留;||则会把这些假值也转向右侧。

教学示例:数量qty为0时,qty ?? 10得到0,而qty || 10得到10。若0代表明确输入的“零件数”,后者可能把有效输入变成默认数量。若业务本来就把空字符串视为未填写,则仍需单独制定校验规则,不能机械替换所有||。

另一个语法细节是,??不能直接与&&或||混写而不加括号。Amy建议先列出0、false、空字符串、null和undefined这五种输入的预期结果,再选择表达式;这比看到一个默认值写法就全项目替换更容易发现业务差异。

官方来源:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规