React Native中‘??’空值合并运算符的含义是什么?
关于JavaScript中
??空值合并运算符的解释 ??是JavaScript的空值合并运算符,核心逻辑直白明了:
- 当左侧表达式的值为
null或undefined时,返回右侧表达式的结果 - 如果左侧是其他任何值(哪怕是
0、空字符串''、false这类“假值”),直接返回左侧的值
结合你写的代码来看:
phone={this.props.projectDetails?.agency?.phone ?? this.props.projectDetails.phone }
它和?.(可选链运算符)配合实现了你要的逻辑:
this.props.projectDetails?.agency?.phone会安全遍历嵌套属性——如果projectDetails或agency不存在(即null/undefined),整个左侧表达式会返回undefined- 这时
??触发,自动 fallback 到右侧的this.props.projectDetails.phone - 如果
agency?.phone本身有值(哪怕是空字符串''、0这种看起来像“空”的假值),??会直接保留这个值,不会触发 fallback
这里要区分它和||(逻辑或运算符)的差异:
||会在左侧是任意假值时返回右侧,比如如果agency.phone是空字符串(用户未填写),||会直接跳去用备选号码,这可能不符合你的业务预期??只针对null/undefined生效,刚好匹配你“优先用agency的号码,只有当它完全不存在时才用主号码”的需求
内容的提问来源于stack exchange,提问作者Ali Sher Khan
相关产品推荐
相关产品推荐

