可选链操作符 ?.

本文介绍了JavaScript中的可选链操作符?.,它允许安全地访问深层属性而不会因中间引用为空导致错误。?.操作符在对象属性不存在或函数不存在时返回undefined,简化了错误检查。示例中展示了如何在对象路径、数组索引和函数调用中使用可选链,提高代码的健壮性和简洁性。
摘要由CSDN通过智能技术生成

可选链操作符 ?. 允许读取位于连接对象链深处的属性的值,而不必验证链中的每个引用是否有效。?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为 null 或者 undefined 的情况下不会引起错误,该表达式短路返回值是 undefined

当尝试访问可能不存在的对象属性时,可选链操作符将会使表达式更短、更简明。

const obj = {
  a: 'foo',
  b: {
    c: 'bar'
  }
}

console.log(obj.b?.c)      // 输出 bar
console.log(obj.d?.c)      // 输出 undefined
console.log(obj.func?.())  // 不报错,输出 undefined

以前可能会通过 obj && obj.a && obj.a.b 来获取一个深度嵌套的子属性,现在可以直接 obj?.a?.b 即可。

使用可选链可以使得表达式在函数不存在时返回 undefined 而不是直接抛异常。

可选链除了可以用在获取对象的属性,还可以用在数组的索引 arr?.[index],也可以用在函数的判断 func?.(args),当尝试调用一个可能不存在的方法时也可以使用可选链。

调用一个对象上可能不存在的方法时(版本原因或者当前用户的设备不支持该功能的场景下),使用可选链可以使得表达式在函数不存在时返回 undefined 而不是直接抛异常。 

const result = someInterface.customFunc?.()

 

关于js中一些操作符,下面这篇博客可能会对你有所帮助:

https://segmentfault.com/a/1190000039008417

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值