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 ?? "无名狗"
完美优化。