You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中x || []与x ?? []的区别有哪些?

x || [] 和 x ?? [] 的返回值差异场景

首先明确两个运算符的核心判断逻辑差异:

  • || 是逻辑或运算符,触发回退的判定条件是左侧值为所有假值(falsy)
  • ?? 是空值合并运算符,触发回退的判定条件仅为左侧值为空值(nullish,即 null / undefined)

当x为以下假值但不属于空值的情况时,两个表达式的返回结果完全不同:

  • 当x为0时:0 || [] 返回[],0 ?? [] 直接返回0
  • 当x为空字符串''时:'' || [] 返回[],'' ?? [] 直接返回''
  • 当x为布尔值false时:false || [] 返回[],false ?? [] 直接返回false
  • 当x为NaN时:NaN || [] 返回[],NaN ?? [] 直接返回NaN

只有当x的值为null或undefined时,两个表达式的返回结果一致,都会返回回退值[]。

内容的提问来源于stack exchange,提问作者JOrielly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:57:03