空值运算符-可选链

发布时间 2023-06-19 17:08:53作者: 加利福尼亚的阳光

?? 非空操作符

??只会排除 null undefined, 与 || 比较 || 会排除 null undefined false 0 ''

const a = '' 
const b = '真'

console.log(a || b) // 真
console.log(a ?? b) // ''

??= 非空赋值

同上

let a = '';
a ??= '真假';

console.log('---', a);  // ''

?. 可选链

可选链会判断左边是否存在,只执行后面的,可用于对象和数组,在层级深,不确定是否存时

const a = null
a.f(11) // Cannot read properties of null (reading 'f')

a?.f(11) // 不会报错