JavaScript空值合并运算符

The Nullish Coalescing Operator(空值合并运算符)是一种 JavaScript 的新运算符,用于解决默认值设定中存在的一些问题。它的语法为 ??(两个问号),表示当左侧的操作数为 null 或 undefined 时,返回右侧的操作数,否则返回左侧的操作数。

例如

const guestCorrect = restaurant.numGuests ?? 10;
console.log(guestCorrect);

在这里插入图片描述

但是空值并不包含0和空字符

restaurant.numGuests = 0;const guestCorrect = restaurant.numGuests ?? 10;
console.log(guestCorrect);

在这里插入图片描述

总结

const value1 = null ?? "default";
console.log(value1);  // 输出 "default"const value2 = "Hello" ?? "default";
console.log(value2);  // 输出 "Hello"const value3 = undefined ?? "default";
console.log(value3);  // 输出 "default"

可以看到,在上述示例中,第一个操作数为 null 或 undefined 时,空值合并运算符返回了第二个操作数,否则返回了第一个操作数。与传统的默认值设置方式相比,空值合并运算符能够区分 null 和 undefined,避免了一些可能的 bug。
需要注意的是,空值合并运算符仅对 null 和 undefined 进行默认值设置,而不包括其他 Falsy 值(如空字符串、0 和 false)。如果需要在默认值设定中考虑所有 Falsy 值,可以使用逻辑或运算符 ||。
例如:

javascriptCopy Codeconst value4 = "" || "default";
console.log(value4);  // 输出 "default"const value5 = 0 || "default";
console.log(value5);  // 输出 "default"const value6 = false || "default";
console.log(value6);  // 输出 "default"

需要注意的是,空值合并运算符是 ES11(也称为 ECMAScript 2020)的新增特性,如果需要在旧版本的 JavaScript 中使用,可以通过转换成常规的三元条件运算符来实现。

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

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

相关文章

实施工程师运维工程师面试题

Linux 1.请使用命令行拉取SFTP服务器/data/20221108/123.csv 文件,到本机一/data/20221108目录中。 使用命令行拉取SFTP服务器文件到本机指定目录,可以使用sftp命令。假设SFTP服务器的IP地址为192.168.1.100,用户名为username,密…

【源码篇】基于SpringBoot+thymeleaf实现的蓝天幼儿园管理系统

基于SpringBootthymeleaf实现的蓝天幼儿园管理系统 文章目录 系统说明技术选型成果展示账号地址及其他说明 系统说明 基于SpringBootthymeleaf实现的蓝天幼儿园管理系统是为幼儿园提供的一套管理平台,可以提高幼儿园信息管理的准确性,系统将信息准确无误…

替代AMS1117-ADJ可调输出线性稳压器(LDO)

1、概 述 PC1117-ADJ/1.2/1.5/1.8/2.5/2.85/3.3/5是最大输出电流为1A的低压降正向稳压器,其中 PC1117-ADJ是可调输出电压版,只需要两个外接电阻即可实现输出电压在1.25V~13.8V范围内的调节,而PC1117-1.2/1.5/1.8/2.5/2.85/3.3/5是固定输出1.…

数据库中的笛卡尔积:定义、生成与避免策略

笛卡尔积(Cartesian Product)是一个在数据库和数据仓库中常见的概念。它来源于数学中的集合论,主要用于描述两个集合中元素之间所有可能的配对情况。在数据库领域,当你在查询中连接两个表时,如果没有指定适当的连接条件…

备忘录怎么传到电脑?备忘录手机电脑互传方法

对于那些记性不好的人来说,手机上的备忘录简直是个不可或缺的好帮手。可是有时候,我们在手机上记录的内容需要在电脑上查看,这时候该怎么办呢? 曾经,我也为备忘录的手机电脑互传问题头疼不已。手机上记录的事项&#…

maven篇---第三篇

系列文章目录 文章目录 系列文章目录前言一、如何解决依赖传递引起的版本冲突?二、说说maven的依赖原则三、说说依赖的解析机制?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享…

Linux学习笔记7-IIC的应用

接下来进入其他两种串行通信方式:SPI和I2C的学习,因为以后的项目中会用到这些通信方式,而且正点原子的开发板里面也有用I2C和SPI通信的传感器来做实例,分别是一个距离传感器和六轴陀螺仪,这样就可以很好的通过实例来学…

Java中异常处理顺序和全局异常处理器

异常处理顺序 我们直接通过代码看下Java中异常的处理顺序。 数组越界异常属于运行时异常,被捕捉后就停止了,打印结果为数组越界了。 Test public void test2(){int[] arr new int[4];try{System.out.println(arr[5]);}catch (ArrayIndexOutOfBoundsE…

Python练习题(四)

本文主要是【Python】——Python练习题的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句:狠狠沉淀&a…

解密Prompt系列20. LLM Agent之再谈RAG的召回多样性优化

几个月前我们就聊过RAG的经典方案解密Prompt系列14. LLM Agent之搜索应用设计。前几天刚看完openAI在DevDay闭门会议上介绍的RAG相关的经验,有些新的感悟,借此机会再梳理下RAG相关的优化方案。推荐直接看原视频(外网)A Survey of …

Django 模板引擎 (四)

一、Django模板引擎 一个强大的工具,用于在HTML页面中嵌入动态内容。它使用一种被称为Django模板语言(Django Template Language)的简单而强大的语法来处理模板。该模板语言使用”{% %}”进行标记,用于执行各种操作。 二、Django…

Linux驱动开发学习笔记3《新字符设备驱动实验》

目录 一、新字符设备驱动原理 1.分配和释放设备号 2.新的字符设备注册方法 (1) 字符设备结构 (2)cdev_init函数 (3) cdev_add函数 (4)cdev_del 函数 二、自动创建设备节点 …