?.其实和.是差不多的用法
但是.的话,对于调用时,如果主体是undefined之类的,会产生报错
let obj = {
name:'123'
}
console.log(obj.age.name) 报错,因为age是undefined,无法在undefined上读取属性name
console.log(obj?.age?.name) undefined这个就很稳健,避免报错
//开发中的实际例子
if(obj.age && obj.age.name){
//之所以做这样判断是因为,有时数据obj可能age是undefied,所以要先判断一下age是否存在,不然会引起报错
}
if(obj?.age?.name){
//简直舒服的不行,这种
}