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

React Native中‘??’空值合并运算符的含义是什么?

关于JavaScript中??空值合并运算符的解释

??是JavaScript的空值合并运算符,核心逻辑直白明了:

  • 当左侧表达式的值为null或undefined时,返回右侧表达式的结果
  • 如果左侧是其他任何值(哪怕是0、空字符串''、false这类“假值”),直接返回左侧的值

结合你写的代码来看:

phone={this.props.projectDetails?.agency?.phone ?? this.props.projectDetails.phone }

它和?.(可选链运算符)配合实现了你要的逻辑:

  1. this.props.projectDetails?.agency?.phone会安全遍历嵌套属性——如果projectDetails或agency不存在(即null/undefined),整个左侧表达式会返回undefined
  2. 这时??触发,自动 fallback 到右侧的this.props.projectDetails.phone
  3. 如果agency?.phone本身有值(哪怕是空字符串''、0这种看起来像“空”的假值),??会直接保留这个值,不会触发 fallback

这里要区分它和||(逻辑或运算符)的差异:

  • ||会在左侧是任意假值时返回右侧,比如如果agency.phone是空字符串(用户未填写),||会直接跳去用备选号码,这可能不符合你的业务预期
  • ??只针对null/undefined生效,刚好匹配你“优先用agency的号码,只有当它完全不存在时才用主号码”的需求

内容的提问来源于stack exchange,提问作者Ali Sher Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:35:20