JavaScript-空值合并操作符”??”与可选链操作符”?.”,了解一下吧!

      2022年01月20日 星期四 18:36:58     JavaScript      js   运算符   逻辑运算符    

JS

1.空值合并操作符??

这是一个逻辑操作符,当左边是null或undefined时,返回右边;当左边是空字符串时返回空字符串;除此之外,运算方式和”||”大同小异.
var nullval = null;
var undefineval = undefined;
var emptystr = "";
var num = 12;
console.log(nullval??"hello") //hello
console.log(nullval||"hello") //hello
console.log(emptystr||"hello") //hello
console.log(emptystr??"hello") //<empty string> 即使emptystr是空字符串(false),"??"返回的依然是左边而不是右边

2.可选链操作符?.

链操作符是什么?

persion.name中的”.”称为链式操作符

可选链操作符(?.)可以读取对象深一层属性是否存在,不存在返回undefined

var personb = {
name: "lihua"
}
console.log(personb.tenure) //undefined
console.log(personb.tenure?.car) //undefined
console.log(personb.tenure.car) //Uncaught TypeError: personb.tenure is undefined

可以看到的是,”?.”使用的时机是第一个”不确定属性”,也建议这样做,不应太靠后使用否则对于不存在属性得到的仍然是报错;新手看到这里可能会想到console.log(personb.tenure.car?.)这样使用来检测car属性(tenure存在的情况下),但你要知道的是”?”只是类似一个判断,相反的那么personb.tenure.car.还能正常使用吗当然不能了这会报错.Uncaught SyntaxError: missing name after . operator


暂无评论

发表评论