js可选的链?与双问号??用法,js实现值为null或undefined时默认赋值,js对象属性取值,对象属性不存在时不报错的实现

1.可选的链

js对象属性取值,对象属性不存在时不报错

const user = {
  employee: {
    name: "Kapil"
  }
};
user.employee?.name;
// Output: "Kapil"
user.employ?.name;
// Output: undefined
user.employ.name
// 输出: VM21616:1 Uncaught TypeError: Cannot read property 'name' of undefined

const obj={n:0,m:null,k:undefined}
const res = obj?.j||100
//100

2.双问号语法

js实现值为null或undefined时默认赋值

const foo = null ?? 'my school';
// 输出: "my school"

const baz = 0 ?? 42;
// 输出: 0

```javascript
const obj={n:0,m:null,k:undefined}
const res1 = obj.n??100
//0
const res2 = obj.m??100
//100
const res3 = obj.k??100
//100
//结合使用
const res4= obj?.settings?.n ?? 100
//100

这个 ?? 的意思是,如果 ?? 左边的值是 null 或者 undefined,那么就返回右边的值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值