9

ES2020 引入了nullish 合并运算符 ( ??),如果左操作数为 null 或未定义,则返回右操作数。此功能类似于逻辑 OR 运算符 ( ||)。例如,以下表达式返回相同的结果。

const a = undefined
const b = "B"

const orOperator = a || b
const nullishOperator = a ?? b
  
console.log({ orOperator, nullishOperator })

结果:

{
    orOperator:"B",
    nullishOperator:"B"
}

那么nullish 运算符有何不同,它的用例是什么?

4

1 回答 1

20

||且仅当左侧是值时,运算符才计算右侧。

??且仅当左侧为null或时,运算符(空合并)计算右侧undefined

false, 0, NaN, ""(空字符串)例如被认为是虚假的,但也许您实际上想要这些值。在这种情况下,??运算符是正确使用的运算符。

于 2020-11-26T13:06:54.870 回答