ES2020
可选链操作符(Optional Chaining)
person?.addr?.province
mdn 的解释
练习
const obj = {
person:{
addr:{
province :"adfs",
}
}
}
console.log(obj?.person?.addr?.province) // 当obj不存在时赋值为undefined
console.log(obj.person.addr.province)
控制台打印效果
const obj = {
peron:{ //此处修改名字使其下面的代码报错
addr:{
province :"adfs",
}
}
}
console.log(obj?.person?.addr?.province) // 当obj不存在时赋值为undefined
console.log(obj.person.addr.province
控制台打印效果
从控制台打印效果来看,第一个输出语句没有识别到该属性会自动复制为undefined,第二个输出语句直接报错
空位合并操作符(Nullish coalescing Operator)
mdn 的解释
a ?? b
// 等同于
a === undefined ? b : a
练习
const foo = null ?? 'default string';
console.log(foo);
// 等效于下面的代码
const fo = null;
fo === null ? "default string" : fo;
console.log(fo === null ? "default string 2" : fo)
控制台打印效果