?? 和 || 运算符的区别
|| 逻辑或运算符
在处理空值或者默认值时会遵循 JavaScript 的类型转换规则。如果左侧的表达式结果为假值(如false、0、空字符串""、null、undefined、NaN),则返回右侧的值。
const x = null; const y = x || "default"; console.log(y); // "default"
?? 运算符
专门用于处理null或undefined的情况,不会受到 JavaScript 的类型转换规则的影响。如果左侧的值为null或undefined,则返回右侧的值。
const x = 0; const y = x ?? 42; const z = x || 42; console.log(y); // 0 console.log(z); // 42
总结
因此,??更适合用于处理空值或者默认值,而||则更适合用于一般的逻辑判断。

浙公网安备 33010602011771号