为啥加问号?可选链(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。


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


相关文章
|
2天前
|
安全 Kotlin
Kotlin中的安全导航操作符?.、空合并运算符?:以及let函数的实践与理解
Kotlin中的安全导航操作符?.、空合并运算符?:以及let函数的实践与理解
3 0
|
2月前
|
安全 Swift
Swift 语言:什么是可选类型(Optional)?如何处理可选类型的安全解包?
Swift的可选类型是处理值可能缺失的类,用?表示。它们能表示有值或无值状态。安全解包用`if let`或`guard let`避免崩溃,而强制解包`!`则风险较高,若值为`nil`会触发运行时错误。
15 0
|
2月前
|
安全 JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?
13 0
|
2月前
|
JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?
|
2月前
|
JavaScript 安全
操作符keyof的作用是什么
操作符keyof的作用是什么
47 3
|
10月前
|
JavaScript 前端开发
空值合并运算符和可选链
空值合并运算符和可选链
|
11月前
|
前端开发 网络架构
ES6-ES11-第一部分-let、const、解构赋值、模板字符串、简化对象写法、箭头函数、函数参数默认值、rest 参数、扩展运算符、Symbol、迭代器、生成器、Promise、Set、Map(一)
ES6-ES11-第一部分-let、const、解构赋值、模板字符串、简化对象写法、箭头函数、函数参数默认值、rest 参数、扩展运算符、Symbol、迭代器、生成器、Promise、Set、Map
|
11月前
|
前端开发 网络架构
ES6-ES11-第一部分-let、const、解构赋值、模板字符串、简化对象写法、箭头函数、函数参数默认值、rest 参数、扩展运算符、Symbol、迭代器、生成器、Promise、Set、Map(二)
ES6-ES11-第一部分-let、const、解构赋值、模板字符串、简化对象写法、箭头函数、函数参数默认值、rest 参数、扩展运算符、Symbol、迭代器、生成器、Promise、Set、Map(二)
|
JavaScript 前端开发