可选链操作符(Optional Chaining Operator)是一种 JavaScript/TypeScript 中的语法特性,用于简化对可能为空或未定义的属性或方法的访问。
在访问一个对象的属性或方法时,通常需要先检查该对象是否为 null 或 undefined,以避免产生错误。可选链操作符 ?.
可以简化这个过程。
下面是一个示例,展示了可选链操作符的使用:
// 定义一个包含嵌套对象的数据结构
const user = {
id: 1,
name: 'John',
address: {
street: '123 Main St',
city: 'New York',
postalCode: '10001'
}
};
// 使用可选链操作符访问嵌套属性
const postalCode = user?.address?.postalCode;
console.log(postalCode); // 输出: 10001
// 对比使用传统的非空判断方式访问嵌套属性
const postalCode2 = user && user.address && user.address.postalCode;
console.log(postalCode2); // 输出: 10001
// 配合双问号表达式使用
const postalCode = user?.xxx?.postalCode ?? [];
console.log(postalCode); // 输出: []
在上面的示例中,我们使用可选链操作符 ?.
来访问 user.address.postalCode
。如果 user
或 address
为 null 或 undefined,那么 postalCode
将为 undefined,而不是抛出错误。
配合双问号表达式使用,如果??
左边为null
或者undefined
,则返回??
右边的值
可选链操作符的优点在于它简化了对多层嵌套属性或方法的访问,避免了手动进行非空判断的繁琐性。