?和??的用法 ---Javascript

当你在JavaScript中看到问号(?)和双问号(??)时,它们通常是用于条件处理和空值合并的操作符。

问号 ?:

在JavaScript中,问号? 可以用于条件运算符(ternary operator),形式为 condition ? expr1 : expr2。
它的作用是根据条件 condition 的真假来选择执行 expr1 还是 expr2。
示例:

let age = 18;
let status = (age >= 18) ? '成年人' : '未成年人';
console.log(status); // 输出: 成年人

双问号 ??:

双问号 ??是空值合并运算符(nullish coalescing operator),用于判断某个值是否为 null 或 undefined。
当左侧的表达式结果为 null 或 undefined 时,它会返回右侧的默认值。
示例:

`let defaultValue = '默认值';
let userInput = null;
let result = userInput ?? defaultValue;
console.log(result); // 输出: 默认值

双问号运算符与逻辑或 || 的区别在于,逻辑或 || 在判断时会把一些 Falsy 值(如空字符串 ‘’ 或 0)视为 false,而双问号 ?? 仅在严格的 null 或 undefined 时才返回右侧的值。
这两个运算符在日常的JavaScript开发中非常有用,能够简化条件判断和处理空值的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/28382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙解决JSON字段名和对象属性名之间的对应关系

HarmonyOS 中使用三方包 class-transformer 来进行解决。 class-transformer 是一个在 JavaScript 和 TypeScript 中用于对象和类之间进行转换的库。它特别有用在处理从 API 返回的 JSON 数据和将其转换为类的实例时,或者在序列化类的实例为 JSON 字符串时。 clas…

Window上ubuntu子系统编译Android

Window上ubuntu子系统编译Android 1、编译环境2、WSL2编译报错2.1 You are building on a machine with 11.6GB of RAM2.2 Case-insensitive filesystems not supported3. android模拟器调试 1、编译环境 AOSP : Android源码下载安装java:sudo apt-get install ope…

Spring @AliasFor用法

同注解内属性互为alias AliasFor的两端必须对称使用,如下name和value互为alias且两端的类型、默认值必须相同,在实际使用时仅赋值一个属性即可,若同时设置多个属性则要求值必须都相同通过Spring AnnotationUtils工具解析注解支持AliasFor,直…

黄仁勋勉励Caltech毕业生:勇于开拓“零十亿”潜力市场,孕育未来科技领袖

Nvidia的创始人兼首席执行官黄仁勋在加州理工学院(Caltech)2024届毕业生的毕业典礼上发表主题演讲时,鼓励毕业生们勇于探索“零十亿市场”——即目前价值不大,但未来潜力巨大的新兴市场。他分享了Nvidia早期如何在遭遇市场挫折后&…

Matlab自学笔记三十一:结构数组的创建、索引和预分配内存

1.概念 结构(structure array)是一种具有容器特性的数据类型,它使用称为字段的数据容器对相关数据进行分组,每个字段可以包含任何类型或大小的数据,所有元素都具有相同数量的字段和相同的字段名称。(与元胞…

Java锁之舞:性能分析与优化之路

目录 一、同步锁性能分析 (一)性能验证说明 1. 使用同步锁的代码示例 2. 不使用同步锁的代码示例 3. 结果与讨论 (二)案例初步优化分析说明 1. 使用AtomicInteger原子类尝试优化分析 2. 对AtomicInteger原子类进一步优化 …

机器学习面试-常见题目

文章目录 一、框架问题1. 监督学习和无监督学习有什么不同?2. 什么是深度学习,它与机器学习算法之间有什么联系?3. 如何评估机器学习模型的有效性?4. 如何确保模型没有过拟合?5. 什么是核技巧,有什么用处&a…

事件传播机制 与 责任链模式

1、基本概念 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,将请求沿着处理链传递,直到有一个对象能够处理为止。 2、实现的模块有: Handler(处理者):定义一个…

码蹄集部分题目(2024OJ赛19期;贪心集训)

1🐋🐋水温调节(黄金;贪心) 时间限制:1秒 占用内存:128M 🐟题目思路 贪心思路:先将两只水龙头的流速开到最大,温度高了,就把热水的流速降低一个…

Java:缓存行和伪共享

在Java中,缓存行(Cache Line)和伪共享(False Sharing)是与多线程访问共享数据相关的两个重要概念。以下是关于这两个概念的详细解释: 缓存行(Cache Line) 定义:缓存行是…

3.2. 马氏链-马氏链的构造及马氏性(1)

马氏链的构造及马氏性 1. 马氏链的构造本节首先构造马氏链, 即构造活动概率空间: 在序列空间中构造 P x , P μ P_x,P_\mu Px

新人学习笔记之(注释和关键字)

一、注释 1.什么是注释 (1)注释是在程序指定位置添加的说明性信息 (2)简单理解,就是对代码的一种解释 2.注释的分类 (1)单行注释 格式:// 注释信息 (2)多行注释 格式:/*注释信息*/ 3.注释的使用 (1)主要作用:增加代码的阅读性 4.注…

4_机械臂坐标系简介

一、坐标系的标准命名 为了规范起见,有必要给机器人和工作空间专门命名和确定专门的“标准”坐标系。 图3-27为一种典型的工况,机器人抓持某种工具,并把工具末端移动到操作者指定的位置。图3-27所示的5个坐标系就是需要命名的坐标系。这五个坐…

7z及7zip-cpp最高压缩比的免费开源压缩软件

7z介绍 7z是一种主流高效的压缩格式,它拥有极高的压缩比。在计算机科学中,7z是一种可以使用多种压缩算法进行数据压缩的档案格式。该格式最初由7-Zip实现并采用,但这种档案格式是公有的,并且7-Zip软件本身亦在GNU宽通用公共许可证…

MySQL分组聚合

where 与 having 的区别 & order by 假如我们有一张表,表名为 sales,如下所示: ----------------------------------------------------------------------------- | transaction_id | customer_id | product_name | price | quantit…

数据结构之B树的原理与业务场景

B树是一种自平衡的树形数据结构,它能够保持数据有序,并且可以高效地进行查找、顺序访问、插入和删除操作。B树的设计是为了优化磁盘I/O操作,因为它可以减少磁盘访问次数,这在数据库和文件系统中非常有用。 1. B树的原理 节点的出…

PCIe总线-RK3588 PCIe子系统简介(八)

1.PCIe子系统 RK3588 PCIe子系统如下图所示。总共拥有5个PCIe控制器。PCIe30X4(4L)支持RC和EP模式,其他4个仅支持RC模式。ITS port 1连接PCIe30X4(4L)和PCIe30X2(2L)控制器,PCIe30X4(4L)和PCIe30X2(2L)控制器使用PCIe3.0 PIPE PHY。ITS port 0连接PCIe3…

RIP路由附加度量值(华为)

#交换设备 RIP路由附加度量值 RIP(Routing Information Protocol)路由协议中的附加度量值是指在RIP路由原来度量值的基础上所增加的额外度量值,通常以跳数来表示。这个附加度量值可以是正值,也可以是负值,用于影响路…

关于STM32上用HID HOST调鼠标数据的解析

一、前言 关于这章主要是基于我前面的那篇文章 链接: 关于怎么用Cubemx生成的USBHID设备实现读取一体的鼠标键盘设备(改进版) https://blog.csdn.net/qq_29187987/article/details/139535648?spm1001.2014.3001.5501 引用的文章的简介 引用的这篇文…