在 JavaScript 中,我们可以使用可选链操作符(Optional Chaining Operator)来标记属性为可选的问号,而不需要重新排序。
下面是一个示例代码:
const obj = {
name: 'John',
age: 25,
address: {
city: 'New York',
country: 'USA'
}
};
// 检查 obj 对象是否存在 address 属性
if (obj?.address) {
// 检查 address 对象是否存在 city 属性
const city = obj.address?.city;
console.log(city); // 输出 "New York"
// 检查 address 对象是否存在 country 属性
const country = obj.address?.country;
console.log(country); // 输出 "USA"
// 检查 address 对象是否存在 postalCode 属性
const postalCode = obj.address?.postalCode;
console.log(postalCode); // 输出 undefined
}
在上面的示例中,我们使用可选链操作符 ?.
来标记属性为可选的问号。这样,如果属性不存在,代码不会抛出错误,而是返回 undefined。
注意,可选链操作符 ?.
只能用于访问属性或调用方法,不能用于修改属性值。如果需要修改属性值,仍然需要先检查属性是否存在。