【js】es6 可选链 ? . 和 空值合并 ? ? 运算符使对象多层判断更简洁

es6可选链?.

1.在调用函数里使用

如果我们多层的调用,直接调用当中间某层不存在时代码就会报错,如直接不判断调用ref.componentRef.instance.ngOnDestroy(),当中间某一层如instance不存在时就会报错

发现判断某个对象的函数存在才调用,通过使用es6的可选链非常方便,分享如下:

ref?.componentRef?.instance?.ngOnDestroy?.();

相当于

if (ref && ref.componentRef && ref.componentRef.instance && ref.componentRef.instance.ngOnDestroy) {
  ref.componentRef.instance.ngOnDestroy();
}

2.在做判断

if(obj?.person?.age){

}

相当于

if(obj && obj.person && obj.person.age){

}

空值合并??

空值合并也很方便,在我们默认赋值的时候很简洁的使用,当不为undefined或null,就使用??右侧的值

var age = b ?? 9;

当b为undefined或null时,age就为9,而b如果为0或者其他转换为false的值a的值还是为9的

参考:
MDN | 可选链操作符
MDN | 空值合并运算符
阮一峰 | ECMAScript 6 入门 | 运算符的扩展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值