空值运算符-可选链

?? 非空操作符

??只会排除 null undefined, 与 || 比较 || 会排除 null undefined false 0 ''
当左侧的结果为 null undefined 时才会执行右边

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) // 不会报错
posted @ 2023-06-19 16:58  加利福尼亚的阳光  阅读(16)  评论(0)    收藏  举报