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


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


相关文章
|
6月前
|
JavaScript API
可选链运算符(?.)
可选链运算符(?.)
30 1
|
8月前
|
安全 Kotlin
Kotlin中的安全导航操作符?.、空合并运算符?:以及let函数的实践与理解
Kotlin中的安全导航操作符?.、空合并运算符?:以及let函数的实践与理解
|
9月前
|
安全 JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?
54 0
|
9月前
|
JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?
|
9月前
|
JavaScript 安全
操作符keyof的作用是什么
操作符keyof的作用是什么
81 3
|
JavaScript 前端开发
空值合并运算符和可选链
空值合并运算符和可选链
|
C语言 索引
【C语言】 操作符(下): -- 条件操作符 --逗号表达式 -- 下标引用操作符 --表达式求值1
【C语言】 操作符(下): -- 条件操作符 --逗号表达式 -- 下标引用操作符 --表达式求值1
|
C语言
【C语言】 操作符(下): -- 条件操作符 --逗号表达式 -- 下标引用操作符 --表达式求值2
【C语言】 操作符(下): -- 条件操作符 --逗号表达式 -- 下标引用操作符 --表达式求值2
|
程序员 C++
C++11之显式转换操作符-explicit
C++11之显式转换操作符-explicit
129 0