JavaScript的两个优化操作符

对于代码段

let name = "无名狗"

if(dog && dog.info && dog.info.name){
    name = dog.info.name
}

我们可以使用可选链操作符(?.)进行优化,它允许读取对象深处的属性值,而不必明确验证链中的每个引用是否有效;

在引用为空的情况下不会引起错误,会自动短路返回值。

let name = "无名狗"

if(dog?.info?.name){
    name = dog.info.name
}

用三元运算符进一步优化为

let name = dog?.info?.name ? dog.info.name : "无名狗"

我们可以使用空值合并操作符(??)进行优化,当左侧的操作数为null或undefined时,返回其右侧操作数,否则返回左侧操作数。

let name = dog?.info?.name ?? "无名狗"

完美优化。

posted @ 2021-05-28 21:32  罗毅豪  阅读(48)  评论(0编辑  收藏  举报