JavaScript学习-可选链 (Optional Chaining)“?“

news/2024/5/18 12:07:42 标签: javascript, 学习, udp

可选链 (Optional Chaining)“?”

  • 是一种简化访问可能为null或undefined的属性或方法的语法特性,通过在属性和方法调用之前添加“?”来实现,这样的话,若前面的表达式的值为null或undefined,整个表达式将会短路,而不会引发错误。

1. 访问对象属性

javascript">// 在没有可选链之前的写法
const name = user && user.address && user.address.city;

// 使用可选链
const name = user?.address?.city;
  • 在上述代码中,若user或user.address为null或undefined,可选链会使整个表达式返回undefined,而不会引发错误。

2. 调用函数

javascript">// 在没有可选链之前的写法
const length = str && str.length;

// 使用可选链
const length = str?.length;
  • 如果str为null或undefined,可选链将返回undefined,而不会导致错误。否则length会等于str.length。

3.数组元素访问

javascript">// 在没有可选链之前的写法
const element = arr && arr[2];

// 使用可选链
const element = arr?.[2];

4. 链式调用

javascript">// 在没有可选链之前的写法
const result = obj && obj.method && obj.method();

// 使用可选链
const result = obj?.method?.();

5. 链式调用与赋值

javascript">// 在没有可选链之前的写法
let value;
if (obj && obj.property && obj.property.value) {
  value = obj.property.value;
} else {
  value = defaultValue;
}

// 使用可选链
const value = obj?.property?.value ?? defaultValue;

  • 以上注意最后的双问号,“??”,它前面看作一个整体,若obj或obj.property不为null或undefined,则返回obj.property.value给value,否则返回defaultValue给value。

http://www.niftyadmin.cn/n/5350277.html

相关文章

clang--cpplint--gitlint

clang_format clang_format是什么 代码格式化工具 官网和教程 下载 sudo apt install clang sudo apt install clang-format#查看下载是否成功 clang --version 代码的构建到提交的过程: cmake .. make make test make clang_format_check cpplint cpplin…

近20k stars,GSYVideoPlayer一款优秀的视频播放器

近20k stars,GSYVideoPlayer一款优秀的视频播放器 引言 在现代社会中,视频已经成为人们获取信息和娱乐的重要形式。为了提供更好的观看体验,开发一款优秀的视频播放器变得至关重要。而GSYVideoPlayer作为一款功能强大、稳定可靠的视频播放器…

React 生命周期详解

React 组件的生命周期是组件在创建、更新和销毁过程中所经历的一系列阶段。每个阶段都会触发特定的生命周期方法,开发者可以在这些方法中执行特定的操作。React 的生命周期方法可以分为三个阶段:挂载阶段、更新阶段和卸载阶段。 1. 挂载阶段 在组件首次…

常用的gpt-4 prompt words收集6

本文介绍我最近收集的一些好用的chatgpt-4的prompts,如果你也有好用的提示词可以互相交流一下。 1. “make it more vivid and lifelike” or “make it more vibrant and realistic.” 将它变得更加生动形象 2. Cross-Site Request Forgery (CSRF) 跨站请求伪造…

人工智能:更多有用的 Python 库

目录 前言 推荐 JupyterLab 入门 复杂的矩阵运算 其它人工智能和机器学习的 Python 库 前言 在这篇文章中,我们将了解更多的矩阵操作,同时再介绍几个人工智能 Python 库。 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂&#x…

师傅带练|大数据人工智能在线实习项目特色

大数据人工智能八大在线实习项目: 某实习网站招聘信息采集与分析 股票价格形态聚类与收益分析 某平台网络入侵用户自动识别 某平台广东省区采购数据分析 产品订单的数据分析与需求预测 基于注意力机制的评论者满意度分析 基于锅炉工况实现…

《Python 简易速速上手小册》第10章:Python 项目实战(基于最新版 Python3.12 编写)

注意&#xff1a;本《Python 简易速速上手小册》 核心目的在于让零基础新手「快速构建 Python 知识体系」 文章目录 <mark >注意&#xff1a;本《Python 简易速速上手小册》<mark >核心目的在于让零基础新手「快速构建 Python 知识体系」 10.1 项目规划和结构10.1…

Qt扩展-QXlsx读写Excel配置使用

QXlsx读写Excel配置使用 一、概述1. 功能概述2. 其他维护 二、安装1. 下载源码2. 配置项目3. 测试代码4. 运行结果 一、概述 项目介绍&#xff1a;https://qtexcel.github.io/QXlsx/Example.html GitHub&#xff1a;https://github.com/QtExcel/QXlsx/tree/master QXlsx 是一个…