可选链
2024年03月11日
一、认识
?.
可选链 ES11(ES2020
新增的特性,TypeScript 3.7
支持了这个特性。可选链可让我们在查询具有多层级的对象时,不在需要进行冗余的各种前置校验。即可选链是一种先检查属性是否存在,再尝试访问该属性的运算符
二、语法
三、用法
3.1 访问对象静态属性
const user = {
id:'',
name:'柏拉图'
}
const name = user?.name;
console.log(name);
// 等同于
//const user = {
// id:'',
// name:'柏拉图'
//}
//const name = user&&user.name;
//console.log(name);
3.2 访问对象动态属性
const attr = 'name'
const user = {
id:'',
name:'柏拉图'
}
const name = user?.[attr];
console.log(name);
3.3 访问数组元素
const array = [1,2,3];
const index = 1;
const item = array?.[index];
console.log(item);
3.4 访问函数参数
const user = {
say (){
console.log('会说话');
}
}
user?.say?.();
3.5 用于严谨的逻辑判断
const obj = {
name:'柏拉图'
}
if(obj?.name){
console.log('执行');
console.log(obj.name);
}