js 可选链操作符

本文介绍了JavaScript中的可选链操作符?.,它能帮助开发者避免冗余的null检查,提高代码的简洁性。通过配置Babel,我们可以使用这个新语法。例如,`res?.data?.list`会优雅地处理可能的null或undefined,而`res?.data?.list ?? []`则提供了默认值。这种新语法使得深层属性访问更加安全,减少了因中间路径为null而导致的错误。
摘要由CSDN通过智能技术生成

我想在开发的时候,很多人都应该都写过这样的js判断:

let arr = res && res.data && res.data.list
if(res.data.type){...}

是不是非常冗余但又不得不写,今天介绍的新语法就是为了解决这种问题的

介绍下可选链操作符 ?.

先配置chaining

// 安装依赖  npm install  @babel/plugin-proposal-optional-chaining -S
// @babel/plugin-proposal-nullish-coalescing-operator -S
// 在babel.config.js中  的 plugins中添加 "@babel/plugin-proposal-optional-chaining"

module.exports = {
  plugins: [
    '@babel/plugin-proposal-optional-chaining',  //可选链 ?.
    '@babel/plugin-proposal-nullish-coalescing-operator'  //空值合并 ??
  ]
}
let arr = res?.data?.list
if(res?.data?.list){...}

介绍下可选链操作符 ??

要是想设置默认值,以前我们是这么写的

let arr = res && res.data || []

现在可以这样

let arr = res && res?.data ?? []
这个??的意思是当左边的值为null或undefined的时候 就取??右边的值 。

来一个长的

let arr = this.businessInfo?.typeInfo?.data?.length ?? 0

作用就是判断这个对象(this.businessInfo)下的(typeInfo)下的(data)下的(length)是否为null或者undefined,当其中一链为null或者undefined时就返回undefined,这样即使中间缺少一个属性也不会报错,双问号后面接的就是默认值

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值