为啥加问号?可选链(Optional Chaining)的操作符

简介: 为啥加问号?可选链(Optional Chaining)的操作符

在JavaScript中,使用问号 ? 作为可选链(Optional Chaining)的操作符,其目的是为了安全地访问对象的深层属性,而不会因为对象链中的某个环节不存在(nullundefined)而导致错误。

例如,考虑以下代码:

const res = {

        data: { list: [1, 2, 3] }

};

const data = res.data?.list;

在这个例子中,res.data?.list 使用了可选链操作符 ?.。如果 res.data 是 undefined 或 null,那么 res.data.list 将不会尝试访问,并且整个表达式 res.data?.list 的值将是 undefined,而不是抛出一个错误。


可选链操作符 ?. 后面可以跟属性访问(如上例中的 list),也可以跟函数调用(例如 res.data?.getList()),如果对象链中的某个环节不存在,那么函数调用将不会执行,并且表达式的结果将是 undefined。


总结来说,加问号 ? 是为了实现可选链,它允许开发者在访问对象属性时不必显式检查每个中间对象是否存在,从而使得代码更加简洁和安全。


相关文章
|
3月前
|
JavaScript API
可选链运算符(?.)
可选链运算符(?.)
20 1
|
5月前
|
安全 Kotlin
Kotlin中的安全导航操作符?.、空合并运算符?:以及let函数的实践与理解
Kotlin中的安全导航操作符?.、空合并运算符?:以及let函数的实践与理解
|
6月前
|
编译器 测试技术 Go
表达式求值——隐式类型转换与操作符属性
表达式求值——隐式类型转换与操作符属性
|
6月前
|
安全 JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?
41 0
|
6月前
|
安全 算法 编译器
【C++ 基础 ()和{}括号】深入探索 C++ 的变量初始化:括号和大括号的奥秘
【C++ 基础 ()和{}括号】深入探索 C++ 的变量初始化:括号和大括号的奥秘
379 0
|
6月前
|
JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?
|
6月前
|
JavaScript 安全
操作符keyof的作用是什么
操作符keyof的作用是什么
71 3
|
JavaScript 前端开发
空值合并运算符和可选链
空值合并运算符和可选链