JavaScript 中的 ?? 是一个新的操作符,,意为“空值合并运算符”。
它的作用是当左侧表达式为 nullundefined 时,返回右侧表达式的结果。如果左侧表达式的值不为 nullundefined,则返回左侧表达式的值。

具体来说,?? 的语法格式如下:

result = expr1 ?? expr2

其中,expr1expr2 是两个表达式,如果 expr1 的值为 nullundefined,则返回 expr2 的结果,否则返回 expr1 的结果。

看如下案例

let a = null;let b = undefined;let c = 0;let d = '';console.log(a ?? 'default'); // 'default'console.log(b ?? 'default'); // 'default'console.log(c ?? 'default'); // 0console.log(d ?? 'default'); // ''

需要注意的是,?? 运算符只会在左侧表达式为 nullundefined 时返回右侧表达式的结果,对于其他 False 值(如 false、0、‘’ 等),其会将其视为真值返回其本身的值。因此,使用 ?? 运算符时需要特别小心,以避免出现错误或意料之外的行为