JavaScript 中的 ?? 是一个新的操作符,,意为“空值合并运算符”。
它的作用是当左侧表达式为 null 或 undefined 时,返回右侧表达式的结果。如果左侧表达式的值不为 null 或 undefined,则返回左侧表达式的值。
具体来说,?? 的语法格式如下:
result = expr1 ?? expr2
其中,expr1 和 expr2 是两个表达式,如果 expr1 的值为 null 或 undefined,则返回 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'); // 0 console.log(d ?? 'default'); // ''
需要注意的是,?? 运算符只会在左侧表达式为 null 或 undefined 时返回右侧表达式的结果,对于其他 False 值(如 false、0、‘’ 等),其会将其视为真值返回其本身的值。因此,使用 ?? 运算符时需要特别小心,以避免出现错误或意料之外的行为