optional chaining (?.
)
?.
运算符用于访问对象属性和调用函数,如果访问的对象或者调用的函数是 undefined
或者 null
,则表达式会直接返回 undefined
而不会报错。
基本使用场景
- 作用于对象属性访问:
- 作用于函数调用:
在函数调用场景下
- 作用于表达式:
在作用于表达式的场景,如果左操作数是 null
或 undefined
,则表达式将不会被执行:
Map
场景:
- 与空值合并运算符结合使用:
错误使用场景
- 尝试对
?.
的结果进行赋值:
- 尝试与标签模板搭配使用
- 尝试与
new
表达式搭配使用: