?? 和 || 运算符的区别

|| 逻辑或运算符

在处理空值或者默认值时会遵循 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

总结

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

posted @ 2023-12-18 11:03  小阿飞ZJF  阅读(27)  评论(0编辑  收藏  举报