在日常开发中有时会碰到这种情况,我们需要判断一个较深层次的对象属性是否存在。用普通的if方法,需要逐个判断中间节点是否有效,代码会比较繁琐,和显得很蠢,而Optional Chaining
可以帮助我们用一句代码解决。
可选链是Js
的新动态,有希望被加入到ECMAScript
中去。
一种可以在当前值可能为null的可选值上请求和调用属性、方法及下标的方法。
接下来介绍一下它的使用方法,使用前需先安装配置
1.安装配置
安装
yarn add @babel/plugin-proposal-optional-chaining --dev
配置 .babelrc
{
"plugins": ["@babel/plugin-proposal-optional-chaining"]
}
2.需求场景
在项目中,经常会遇到对象的属性链访问,很容易因为一个属性不存在出现Cannot read property 'xxx' of undefined
的问题。Optional Chaining就解决了这一问题。
它会先判断前面的值, 如果 undefined 或者 null, 就结束后面的调用, 直接返回 undefined。
3.使用方法
?. 操作符
a?.b
//相当于
a == null ? undefined : a.b
//先判断前面的值, 如果 undefined 或者 null, 就结束后面的调用, 直接返回 undefined
日常使用中再也不用用if
一层一层的逐个判断中间节点是否有效,例如想要看a{b{c{d}}}中d是否存在,只需
a?.b?.c?.d
三种使用场景,静态调用、动态调用、函数调用。