ES2020引入了空值合并运算符(??
),如果左操作数为 null 或 undefined,则返回右操作数。这个功能类似于逻辑或运算符 (||
)。例如,下面的表达式返回相同的结果。
const a = undefined
const b = "B"
const orOperator = a || b
const nullishOperator = a ?? b
console.log({ orOperator, nullishOperator })
结果:
{
orOperator:"B",
nullishOperator:"B"
}
那么空值运算符有何不同,并且它的用例是什么?
a || b === a ? a : b
,a ?? b === a != null ? a : b
- Felix Kling0 + 0
,0 - 0
,0 * 0
都会产生0
,但我希望没有人会认为这些运算符执行不同的操作。如果您想了解运算符之间的区别,仅查看一个示例是不够的。 - Felix Kling