链判断运算符(?.)
老的写法
var obj = {info: {user: {name:'张三'}}}
// 错误的写法
var name =obj.info.user.name
// 正确的写法
var name = (obj &&
obj.info &&
obj.info.user &&
obj.info.user.name) || 'default'
(?.)写法
var name = obj?.info?.user?.name
链判断运算符是直接在链式调用的时候判断,左侧的对象是否为null或undefined。如果是的,就不再往下运算,而是返回undefined。
注意:若babel的版本低于7.0.0,则无法使用,需要升级版本
1.(升级babel版本)进入到项目根目录运行
npx babel-upgrade --write
升级过版本,添加以下devDependencies依赖:
@babel/plugin-proposal-optional-chaining
在.babelrc或者babel.config.js中加入这个插件
{"plugins":["@babel/plugin-proposal-optional-chaining"]}
执行
npm install