“??“ 和 “?.“ 的使用

??是空值合并操作符

逻辑操作符,左侧为null和undefined时,才返回右侧的数

const sum = null ?? 12
console.log(sum);
//输出12
​
const sum1 = 12 ?? 23
console.log(sum1);
//输出12
​
const sum2 = undefined ?? 12
console.log(sum2);
//输出12

?. 是可选链操作符

判断对象中的属性是否存在,存在则继续执行

可以读取位于连接对象链深处属性的值,不必明确验证链中的每个引用是否有效 功能类似于“.” 链式操作符,不同之处在于,在引用为空 null 或者 undefined 的情况下不会引起错误,该表达式短路返回值是 undefined 与函数调用一起使用时,如果给定的函数不存在,则返回 undefined。

 获取一个对象更深层次的属性,即obj中的first属性下的second属性。

// 为了避免报错, 获取之前要判断first属性是否为null或者undefined,在获取second属性
// “与”
let num = obj.first && obj.first.second;
// ?.
let num = obj.first?.second
  1. 可选链与函数调用

    // 调用一个可能不存在的方法时,如果被调用的方法不存在,使用可选链可以使表达式自动返回undefined而不是抛出一个异常
    let result = someInterface.customMethod?.();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值