?? 和 || 运算符的区别

发布时间 2023-12-18 11:04:14作者: 小阿飞ZJF

|| 逻辑或运算符

在处理空值或者默认值时会遵循 JavaScript 的类型转换规则。如果左侧的表达式结果为假值(如false0、空字符串""nullundefinedNaN),则返回右侧的值。

const x = null;
const y = x || "default";
console.log(y); // "default"

?? 运算符

专门用于处理nullundefined的情况,不会受到 JavaScript 的类型转换规则的影响。如果左侧的值为nullundefined,则返回右侧的值。

const x = 0;
const y = x ?? 42;
const z = x || 42; console.log(y);
// 0
console.log(z); // 42

总结

因此,??更适合用于处理空值或者默认值,而||则更适合用于一般的逻辑判断。