JS 的空值合并运算符

Posted on Wed, 25 Dec 2024 16:16:34 +0800 by LiangMingJian


概述

在一些编程语言如 JavaScript 的代码中,支持如????=?.这样的运算符。这些运算符通常应用在赋值语句中,来避免空值被赋给变量。

?? 空值合并运算符

如下述代码,b 等于 a,如果 a 为 undefined、null,则 b 等于 c

let b
let a = 0
let c = { name:'XXX' }

b = a ?? c

??= 空值赋值运算符

如下述代码,??= 左侧的值为 null、undefined 时,会将右侧变量的值赋给左侧变量。反之,如果右侧为空,则左侧的值不进行处理

let b = '你好'
let a = 0
let c = null
let d = '123'
b ??= a;  // b = '你好'
c ??= d  // c = '123'

?. 可选链

如下述代码,只有当 a 存在,且 a 具有 name 属性时,才会把值赋给 b ,否则 b 为 undefined

let a
let b = a?.name