??:空值合并操作符
只有当左侧表达式结果为
nullish
时,才返回右侧表达式结果。(和||的区别是:||只要左侧表达式结果是falsely的值,就会返回右侧表达式结果)
nullish
:null
或undefined
falsely
:false
、null
、undefined
、NaN
、''
、0
?.:可选链操作符
允许读取连接对象链深处的属性的值,而不必明确验证每个引用是否有效。
?.
操作符的功能类似于.
链式操作符,不同之处在于,在引用为空(nullish
)的情况下不会引起错误,该表达式短路返回值是undefined
。与函数调用一起使用时,如果给定的函数不存在,则返回undefined
??=:逻辑空赋值运算符
仅在左侧表达式为
nullish
时对其赋值
||=:逻辑或赋值运算符
在左侧表达式为
falsely
时对其赋值