读取对象属性的时候,如果某个属性的值是null或undefined,如何为它们指定默认值

本文介绍了JavaScript中如何为可能的空值设置默认值,讨论了||运算符的局限性和??运算符的优势。||运算符在遇到空字符串、false或0时也会触发默认值,而??运算符仅在值为null或undefined时才起作用。此外,还提到了逻辑赋值运算符的新用法,简化了默认值的设定。文章还提醒了读者在使用多个逻辑运算符时需要注意优先级,并给出了使用示例。
摘要由CSDN通过智能技术生成

常见做法:通过||运算符指定默认值。

const {string,data,getData} from props;
string=string||''
data=data||[]
getData=getData||new Function()

问题:但是这样的话,如果属性的值如果为空字符串或false0,默认值也会生效

解决方法:使用判断运算符??它的行为类似||,但是只有运算符左侧的值为nullundefined时,才会返回右侧的值。

const {string,data,getData} from props;
string=string ?? ''
data=data ?? []
getData=getData ?? new Function()

上面代码中,默认值只有在左侧属性值为nullundefined时,才会生效。

应用:??跟链判断运算符?.配合使用,为nullundefined的值设置默认值。

const id = data?.id ?? '';

注意:

??本质上是逻辑运算,它与其他两个逻辑运算符&&||有一个优先级问题,它们之间的优先级到底孰高孰低。优先级的不同,往往会导致逻辑运算的结果不同。

现在的规则是,如果多个逻辑运算符一起使用,必须用括号表明优先级,否则会报错。

(aa && bb) ?? cc;
aa && (bb ?? cc);

简写方式:使用逻辑赋值运算符,将逻辑运算符与赋值运算符进行结合。

// 老的写法
string=string ?? ''
data=data ?? []
getData=getData ?? new Function()

// 新的写法
string ??= ''
data ??= []
getData??= new Function()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值