es6 链判断运算符(?.)

链判断运算符(?.)

老的写法

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容