obj?.name 可选链操作符

2021-11-12  本文已影响0人  林鹤_a354

通过连接的对象的引用或函数可能是 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).

上一篇 下一篇

猜你喜欢

热点阅读