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
相关产品推荐
相关产品推荐

