1、基本使用
空值合并运算符(??
)英文名称为 Nullish coalescing operator,是一个逻辑运算符。
特性:当左侧的操作数为 null
或者 undefined
时,返回其右侧操作数,否则返回左侧操作数。
const foo = null ?? 'default string';
console.log(foo);
// expected output: "default string"
const baz = 0 ?? 42;
console.log(baz);
// expected output: 0
2、与逻辑或运算符(||
)区别
与逻辑或运算符(||
)不同的是,当左侧操作数为 0、空字段、布尔false 时,空值合并运算符??
均返回左侧操作数。
const num = 0 ?? 1;
console.log(num) // 0
const flag = false ?? true;
console.log(flag) //false
const str = '' ?? 'string';
console.log(str) // ''
上述场景如果使用 ||
,可能会出现不符合预期的结果,因为||