在 JavaScript/TypeScript 中,?? 和 ||是做什么的有什么区别
·
在 JavaScript/TypeScript 中,`??` 和 `||` 都是逻辑运算符(逻辑运算符),但它们的判断逻辑不同:
?? (空值合并运算符)
- 仅当左侧的值为 null 或 undefined 时,才返回右侧的值
- 对空字符串 ' '、0、false 等 "假值" 不生效
例如:
你的代码 payData?.cid ?? '':
- 只有当 payData?.cid 是 null或 undefined 时,才会使用 ' '
- 如果 payData?.cid 是 ' '(空字符串),则会直接返回 ' '
| | (逻辑或运算符)
- 当左侧的值为 `"假值"`(null、undefined、''、0、false 等)时,就返回右侧的值
- 覆盖范围比 `?? `更广
如果:
换成 payData?.cid | | ' ':
- 不仅 null/undefined 会返回 ''
- 当 payData?.cid 是 0 或 false 时,也会返回 ' '
总结
?? 更精确:只处理 null/undefined
|| 更宽泛:处理所有 "假值"
更多推荐



所有评论(0)