JavaScript 中的 ?.(可选链操作符)可安全访问嵌套属性,防止错误:如果属性存在,返回其值;不存在,返回 undefined。可用于处理可能为 null 或 undefined 的嵌套数据结构。优点:防止错误、提高可读性、便于与其他运算符结合。局限性:不可访问数组元素、不可赋值、效率可能低于条件语句或 try...catch 块。

JavaScript 中的 ?.(可选链操作符)
?. 运算符
?.(可选链操作符)是一个 JavaScript 运算符,用于安全地访问嵌套的属性并防止错误。如果对象属性或方法存在,它将返回该值;否则,它将返回 undefined。
语法
object?.property
用法
可选链操作符通常用于处理可能为 null 或 undefined 的嵌套数据结构。例如:
自从百度屏蔽淘宝客网站、淘宝抛弃淘宝客之后,个人站长集体陷入了恐慌之中。此时,什么值得买网的异军突起引起了广大个人站长的极大关注。做一个什么值得买一样的导购网站成了众多个人站长的一致心愿! TP-COUPON 导购系统 即是让个人站长实现此心愿的绝佳选择! 欢迎个人站长选用。V1.1版 更新记录:1.修正请求时查询淘宝店铺错误的bug2.删除一些无用的代码
const user = {
name: "John",
address: {
street: "Main Street"
}
};
console.log(user.address?.street); // "Main Street"在上面的示例中,address 属性可能存在或不存在。如果它存在,我们会访问 street 属性并输出它的值。如果 address 不存在,可选链操作符将返回 undefined,避免了引用错误。
优点
使用 ?. 运算符有以下优点:
-
防止错误:它可以防止引用错误,因为如果属性不存在,它会返回
undefined。 -
提高代码可读性:它消除了条件语句和
try...catch块,使得代码更易于阅读。 - 便于与其他运算符结合使用:它可以与其他运算符(如三元运算符和逻辑运算符)结合使用,创建更复杂的条件语句。
局限性
值得注意的是,?. 运算符仍然存在一些局限性:
- 它不能用于访问数组元素。
- 它不能用于赋值。
- 在某些情况下,它可能比条件语句或
try...catch块效率较低。









