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'); // 0console.log(d ?? 'default'); // ''
需要注意的是,??
运算符只会在左侧表达式为 null
或 undefined
时返回右侧表达式的结果,对于其他 False 值(如 false、0、‘’ 等),其会将其视为真值返回其本身的值。因此,使用 ??
运算符时需要特别小心,以避免出现错误或意料之外的行为