空值合并运算符(??)仅在左侧为 null 或 undefined 时返回右侧值,否则返回左侧值;而逻辑或(||)对所有假值(如 0、''、false、NaN)均触发替换。

JavaScript 空值合并运算符(??)用于在左侧操作数为 null 或 undefined 时,返回右侧操作数;否则返回左侧操作数。它和逻辑或(||)看起来相似,但判断“假值”的范围不同——这是两者最核心的区别。
空值合并运算符只关心 null 和 undefined
?? 的判定非常精准:只有当左边是 null 或 undefined 时,才用右边的值。其他所有值,包括 0、''(空字符串)、false、NaN,都会被原样返回。
例如:
-
0 ?? 10→0(不是假值,不替换) -
'' ?? 'default'→''(空字符串不触发合并) -
null ?? 'fallback'→'fallback' -
undefined ?? 42→42
逻辑或会把所有假值都当作“无效”处理
|| 是基于布尔上下文的“真/假”判断,只要左侧是任何假值(false、0、''、null、undefined、NaN),就返回右边的值。
立即学习“Java免费学习笔记(深入)”;
标签: javascript java 区别
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~