当前位置: 首页 > news >正文

js强大的运算符:??、??=

学习目标:

js中强大的运算符

  • ?? 非空运算符

学习内容:

?? 非空运算符

注意:?? 运算符被称为非空运算符。如果第一个参数不是 null/undefined 将返回第一个参数,否则返回第二个参数

之前: 给变量设置默认值时,常用|| 逻辑运算符,如果第一个参数不是假值就返回第一个参数,否则返回第二个参数

js中的假值: ’ '、0、false、NaN、null、undefined

demo:用户账户上可能有0元,如果用||,会将0视为假值,此时就有?? 的必要了

console.log( null ?? 6) // 6
console.log( undefined ?? 6) // 6console.log( '' ?? 6) // ''
console.log( false ?? 6) //false
console.log( NaN ?? 6) // NaN
console.log( 0 ?? 6) // 0

?? = 空赋值运算符

注意: 这个运算符和?? 有着很深的联系
1、仅当值为 null 或 undefined 时,此赋值运算符才会赋值
2、其实是个语法糖,类似: a = a + b 写成 a += b

var x = null
var x1 = undefined
var x2 = ""
var x3 = NaN
var y = 5console.log(x ??= y) // 5
console.log(x = (x ?? y)) // 5console.log(x1 ??= y) // 5
console.log(x1 = (x ?? y)) // 5console.log(x2 ??= y) // ''
console.log(x2 = (x2 ?? y)) // ''console.log(x3 ??= y) // NaN
console.log(x3 ??= y) // NaNconsole.log(x3 = (x3 ?? y)) // NaN
console.log(b = (3+1)) // 4

es6默认参数: 只有当undefined的时候才会使用默认值

function gameSettingsWithDefaultParams(gameSpeed=1, gameDiff='easy') {return {gameSpeed, gameDiff}
}
let yt = gameSettingsWithDefaultParams(undefined, null) 
console.log(yt) // { gameSpeed: 1, gameDiff: null }

相关文章:

js强大的运算符:??、??=

学习目标: js中强大的运算符 ?? 非空运算符 学习内容: ?? 非空运算符 注意:?? 运算符被称为非空运算符。如果第一个参数不是 null/undefined 将返回第一个参数,否则返回第二个参数 之前: 给变量设置默认值时…...

【MATLAB源码-第207期】基于matlab的单相光伏并网系统仿真,并网策略采用基于扰动观测法的MPPT模型和使用电压电流双闭环SPWM控制。

操作环境: MATLAB 2022a 1、算法描述 本文将重点分析光伏发电最大功率点跟踪(MPPT)技术和逆变器的并网控制技术,并在Simulink环境下建立模拟系统,以体现这些技术的应用与效果。文章结构如下:首先简介光伏…...

java发送请求-二次开发-get请求json

这里有2个判断 如果param为空则对url发送请求 再继续判断有值时,接口参数时json还是namevalue格式 因为json是带{,所以可以先写为param包含{}, 反之就是请求格式是url?param 请求json要带参数,所以需要使用setEntity方法, 最…...

Typescript高级: 对泛型和多态的应用, 实现Java中的ArrayList和LinkedList

ArrayList 1 ) 概述 在Java中,ArrayList是一个非常常用且强大的数据结构,它提供了动态数组的功能能够方便地添加、删除和访问元素。在TypeScript中,虽然并没有内置的ArrayList类型但我们可以通过类与接口来模拟实现ArrayList的功能 2 &…...

正则表达式常用特殊字符(元字符)说明

正则表达式中包含多种特殊字符(也称作元字符),它们具有特定的含义,用于构建复杂的匹配模式。以下是一些常用的特殊字符序列及其含义: \d - 匹配任何数字,等同于 [0-9]。\D - 匹配任何非数字字符&#xff0…...

使用hdc TCP模式无线方式连接OpenHarmony设备

本文将介绍如何使用hdc工具 tcp模式以无线的方式连接OpenHarmony设备。 1. usb连接方式切换为tcp模式。 将usb线将OpenHarmony设备和电脑端连接,并且将两个连接至同一个局域网。 # 执行 tmode port port-number,port-number设置为端口号。 hdc tmode …...

杂记-记一次前端打包问题解决过程

背景 若干年没更新发布的前端项目,突然来了个小需求,需求完成耗时5min,打包问题解决2小时 问题 error commander12.0.0: The engine “node” is incompatible with this module. Expected version “>18”. Got “10.22.1” 这个错误…...

维修ABB示教器主板DSQC679 3HAC 033624-001 /R机器人液晶显示屏深圳捷达工控维修

ABB 机器人示教器是工业环境中用于对机器人系统进行编程和控制的重要工具。这些手持设备允许操作员与机器人交互、输入命令并教它们特定的动作和任务。 每个 ABB 机器人示教器均专为用户友好型操作而设计,具有直观的界面和易于使用的人体工学设计。有多种型号可供选…...

原子学习笔记3——点亮 LED

一、应用层操控设备的两种方式 应用层如何操控底层硬件,同样也是通过文件 I/O 的方式来实现,设备文件便是各种硬件设备向应用层提供的一个接口,应用层通过对设备文件的 I/O 操作来操控硬件设备,譬如 LCD 显示屏、串口、按键、摄像…...

齐护K210系列教程(十八)_识别条码

识别条码 联系我们 将识别到的条形码内容打印输出并显示 测试条形码可以到如下网站得到:http://www.jsons.cn/barcode/ 4,课程资源 课程程序下载:【18条形码】 联系我们 扫码 或者点这里加群了解更多! Created by qdprobot...

K折交叉验证

训练数据稀缺,无法构成验证集。 所以我们将训练数据分为k个子集。 执行k次模型训练和验证。每次在k-1个子集上进行训练, 并在剩余的一个子集(该轮没有训练的子集)上进行验证。 最后,这k次实验结果取平均来估计训练和验…...

Docker 的 Ubuntu 操作系统镜像

Debian 和 Ubuntu 都是目前较为流行的 Debian 系列 的服务器操作系统,十分适合研发场景。 Debian 和 Ubuntu 属于同一系列的发行版。Debian 是由 Ian Murdock 在 1993 年创建的最初的发行版。Ubuntu 是 Mark Shuttleworth 在 2004 年基于 Debian 创建的发行版。 Li…...

【Python】Python中的logging模块介绍和示例

Python中的logging模块是一个强大的内置模块,用于记录和跟踪应用程序的运行过程。它提供了灵活的日志记录功能,可以将日志消息输出到多个目标(如控制台、文件、远程服务器等),并支持不同的日志级别。以下是logging模块…...

PXIe规格i3/i5/i7单板计算机控制器

是专为PXIe混合测试系统设计的主控制器,3U 12HP PXIe规格。该产品采用Intel Core™i3/i5/i7 第四代高性能处理器,内存可支持高达16G DDR3L。该系统PXI Express的link配置为通用的4Port 4lane的模式,数据吞吐量高达8GB/S。 CX786x提供丰富灵活…...

弱网对抗的策略有哪些?

在弱网环境下,数据传输可能会面临丢包、延迟、抖动等问题,因此采取合适的弱网对抗策略对于确保数据传输的稳定性和可靠性至关重要。以下是一些常见的弱网对抗策略: 数据压缩:使用压缩算法如Gzip、Brotli等对数据进行压缩&#xf…...

如何通过OMS加快大表迁移至OceanBase

OMS,是OceanBase官方推出的数据迁移工具,能够满足众多数据迁移场景的需求,现已成为众多用户进行数据迁移同步的重要工具。OMS不仅支持多种数据源,还具备全量迁移、增量同步、数据校验等功能,并能够对分表进行聚合操作&…...

讨论:WGS84与CGCS2000的坐标系怎么互转

前言: 今天我们要讨论一个问题:WGS84与CGCS2000的坐标系怎么互转? 对于有一定基础的朋友应该知道,WGS84和CGCS2000属于不同的椭球,如果进行严密的数学转换,是需要建立参数模型之后,再进行转换&…...

SpringCloud面试题

SpringCloud常见组件有哪些 注册中心组件:Eureka、Nacos 负载均衡组件:Ribbon 远程调用组件:OpenFeign 网关组件:Zuul、Gateway 服务保护组件:Hystrix、Sentinel 服务配置管理组件:SpringCloudConfig、Nac…...

深入了解Java Stream中的Collectors.partitioningBy()

在Java编程中,Stream API是一种强大的工具,它提供了处理集合数据的便捷方式。而Stream API中的Collectors.partitioningBy()方法则是其中一个十分有用的函数,它允许我们根据指定的条件将元素分成两个组。在本文中,我们将深入探讨这…...

下拉多选【bootstrap-multiselect】

1、引入资源 <link rel="stylesheet" href="${components}/bootstrap/css/bootstrap-multiselect.css"> <script src="${components}/bootstrap/js/bootstrap-multiselect.js"></script> 2、初始化 $("#topic-select&qu…...

PP-DocLayoutV3开发者案例:对接LangChain文档加载器,输出标准Unstructured格式

PP-DocLayoutV3开发者案例&#xff1a;对接LangChain文档加载器&#xff0c;输出标准Unstructured格式 1. 项目背景与需求 在实际的文档处理流程中&#xff0c;我们经常需要将各种格式的文档&#xff08;PDF、图片、扫描件等&#xff09;转换为结构化的数据&#xff0c;以便后…...

AI写春联真简单:春联生成模型-中文-base 新手零基础教程

AI写春联真简单&#xff1a;春联生成模型-中文-base 新手零基础教程 春节将至&#xff0c;贴春联是中国人最重要的年俗之一。但你是否遇到过这样的困扰&#xff1a;想写一副好春联却缺乏灵感&#xff0c;或者书法不够漂亮不好意思贴出来&#xff1f;现在&#xff0c;有了AI技术…...

UNIT-00:Berserk Interface 深入解析Python核心机制:从语法糖到内存管理

UNIT-00&#xff1a;Berserk Interface 深入解析Python核心机制&#xff1a;从语法糖到内存管理 1. 引言&#xff1a;当代码不只是代码 你有没有过这样的经历&#xff1f;写Python代码时&#xff0c;用上了装饰器、生成器&#xff0c;感觉代码很“优雅”&#xff0c;但心里总…...

扶摇速记:眼前流水,曲折前向

英语单词 went&#xff0c;意为【走】或走【去】&#xff0c;它是动词 go 的过去式。 went v. (go过去式) 去&#xff0c;走 我们可以这样去理解&#xff0c;其中 -t&#xff0c;表动词&#xff0c;是构词语法形式&#xff0c;含义主要来自wen-&#xff0c;而went 或 wen-的首字…...

北斗导航 | 接收机自主完好性监测算法研究综述:从算法到应用

文章目录 摘要 关键词: 一、引言 二、RAIM算法分类与研究进展 2.1 算法分类框架 2.2 多星座融合与ARAIM 2.3 故障检测与排除方法的多元演进 2.4 机器学习与深度学习融合 三、应用领域研究进展 3.1 航空领域的纵深演进 3.2 轨道交通、海事与无人机的新兴应用 3.3 视觉辅助与多源…...

FLUX.1-dev旗舰版多GPU部署:分布式推理加速方案

FLUX.1-dev旗舰版多GPU部署&#xff1a;分布式推理加速方案 1. 引言 想象一下&#xff0c;你正在处理一批高分辨率图像生成任务&#xff0c;单张GPU需要等待数分钟才能完成。随着任务量增加&#xff0c;这种等待变得难以忍受。这就是为什么我们需要多GPU部署方案——将计算负…...

ThinkPad X220 安装 Arch Linux 完美指南

1 镜像准备 1.1 镜像下载 安装镜像 iso 在开源镜像站&#xff08;推荐&#xff09;或者 archlinux 官方下载页面 下载。 国内常用的提供 archlinux 安装镜像的开源镜像站&#xff08;选一个即可&#xff09;&#xff1a; 中国科学技术大学开源镜像站清华大学开源软件镜像站…...

【26最新大英赛】全国大学生英语竞赛高频核心词汇表pdf电子版(考前必背单词)

2026年全国大学生英语竞赛将于4月12日举行&#xff0c;倒计时6天&#xff01;帮助广大考生高效备考&#xff0c;小编精心整理了最新的大英赛核心词汇&#xff0c;PDF电子版&#xff0c;可下载打印&#xff01; 资料下载&#xff1a; 资料下载https://pan.quark.cn/s/13eaf6fb0…...

千问3.5-9B多模态扩展:OpenClaw处理图片与文本混合任务

千问3.5-9B多模态扩展&#xff1a;OpenClaw处理图片与文本混合任务 1. 为什么需要本地多模态自动化 去年夏天&#xff0c;我电脑里堆积了上千张混杂着文字说明的截图——有技术文档片段、会议纪要、临时灵感记录。手动整理这些内容时&#xff0c;我突然意识到&#xff1a;如果…...

OpenClaw硬件监控方案:Qwen3.5-9B实时预警服务器异常状态

OpenClaw硬件监控方案&#xff1a;Qwen3.5-9B实时预警服务器异常状态 1. 为什么需要智能化的硬件监控&#xff1f; 去年夏天&#xff0c;我负责维护的一台GPU服务器突然宕机&#xff0c;导致训练任务中断。排查后发现是内存泄漏问题——但传统的监控系统只在内存耗尽时才发出…...