JavaScript中??(空值合并运算符)和||(逻辑或运算符)都用于处理默认值,但它们的处理逻辑和适用场景有显著区别。
相似性
默认值设置:两者均用于在左侧值为“假值”或缺失时返回右侧值。
返回原始值:不返回布尔值,而是直接返回操作数的原始值。
核心区别
特性 | ??(空值合并运算符) | ||(逻辑或运算符)
处理条件 | 仅当左侧为 null 或 undefined 时返回右侧值。 | 当左侧为任意“假值”(如 false、0、""、null、undefined、NaN)时返回右侧值。
优先级 ??优先级高于 ||,在混合表达式中先计算。
优先级较低,需注意运算顺序。
示例
const a = null; a ?? 'default' → 'default'
const b = 0; b ?? 'default' → 0
const a = null; a || 'default' → 'default'
const b = 0; b || 'default' → 'default'
使用场景
??:适用于严格区分 null/undefined 和其他假值的场景(如设置非空默认值)。
||:适用于需要排除所有假值(包括 0、false 等)的场景。
384

被折叠的 条评论
为什么被折叠?



