通过连接的对象的引用或函数可能是 undefined 或 null 时,可选链操作符提供了一种方法来简化被连接对象的值访问。
例如:
let nestedProp = obj.first && obj.first.second;
可用下面的方式替换
let nestedProp = obj.first?.second
如果obj.first 是 null 或者 undefined,表达式将会短路计算直接返回 undefined。
当使用一个API的方法可能不可用时,要么因为实现的版本问题要么因为当前用户的设备不支持该功能。该方法也可用于调用一个可能不存在的方法,可以使表达式自动返回undefined而不是抛出一个异常。
letresult=someInterface.customMethod?.();
注意: 如果该属性名存在且不是函数, 使用?. 仍然会产生一个TypeError 异常 (x.y is not a function).
网友评论