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


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


相关文章
|
应用服务中间件 Linux 网络安全
linux下查找nginx.conf文件路径的方法
nginx.conf文件在哪?云吞铺子介绍Linux系统下查找nginx.conf配置文件的方法。 查找nginx.conf 1、SSH连接Linux服务器,命令:ssh root@你的服务器IP 2、执行命令:nginx -t回车,即可看到nginx.conf文件所在目录 3、cd进入目录,vi nginx.conf编辑nginx.conf文件即可。
10451 10
|
机器学习/深度学习 人工智能 并行计算
《算力觉醒!ONNX Runtime + DirectML如何点燃Windows ARM设备的AI引擎》
ONNX Runtime 是一个跨平台高性能推理引擎,可运行不同框架转为 ONNX 格式的模型,通过深度分析与优化计算图提升效率。在 Windows ARM 设备上,它针对硬件特性优化,结合微软 DirectML API,充分利用 GPU 并行计算能力加速 AI 推理。两者深度融合,灵活调整参数以满足实时性或高精度需求,在文本分类、图像识别、智能安防等领域显著提升性能,为多样化应用场景提供高效支持。
821 16
|
数据采集 索引 Python
Python Slice函数使用教程 - 详解与示例 | Python切片操作指南
Python中的`slice()`函数用于创建切片对象,以便对序列(如列表、字符串、元组)进行高效切片操作。它支持指定起始索引、结束索引和步长,提升代码可读性和灵活性。
解决java.lang.IllegalStateException: Failed to load ApplicationContext错误~
解决java.lang.IllegalStateException: Failed to load ApplicationContext错误~
1721 0
|
NoSQL Java Redis
Redis基本数据类型及Spring Data Redis应用
Redis 是开源高性能键值对数据库,支持 String、Hash、List、Set、Sorted Set 等数据结构,适用于缓存、消息队列、排行榜等场景。具备高性能、原子操作及丰富功能,是分布式系统核心组件。
904 2
|
程序员
【Markdown速成】半小时入门Markdown教程(后缀.md文件详解)
作为程序员我们经常会看到README.md这种说明文件,以.md为后缀的文件就是我们所说的Markdown的文件。
3714 4
|
缓存 前端开发 网络协议
性能优化|几个方法让图片加载更快一些
对电商网页的性能而言,图片优化是至关重要的事情,本文就此探讨了一些简单、可靠的图片优化手段。
手把手教会你使用Markdown【从入门到精通一篇就够了】
手把手教会你使用Markdown【从入门到精通一篇就够了】
|
JavaScript API
可选链运算符(?.)
可选链运算符(?.)
265 1

热门文章

最新文章