当前位置: 首页 > 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…...

【产品发布】建享云智能单据扫描仪正式上线,一站式解决单据数字化处理难题

建享云正式推出全新智能单据扫描仪&#xff0c;聚焦各行业单据数字化处理的核心痛点&#xff0c;无需复杂部署流程、无需专业技术支撑&#xff0c;轻松适配个人办公与企业级各类场景。本文将简洁明了地介绍产品核心功能、操作方法及适配范围&#xff0c;帮助用户快速了解产品价…...

微信QQ语音解码终极指南:silk-v3-decoder免费解锁音频文件

微信QQ语音解码终极指南&#xff1a;silk-v3-decoder免费解锁音频文件 【免费下载链接】silk-v3-decoder [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch conversion support. …...

开源项目治理:ECC 社区贡献指南与协作模式

作者注&#xff1a;本文基于 ECC 项目的开源治理实践&#xff0c;帮助中国开发者理解如何参与大型开源项目并建立有效的协作流程。项目开源地址&#xff1a;github.com/affaan-m/ECC摘要 ECC&#xff08;Everything Claude Code&#xff09;是一个拥有 170 贡献者、28K Forks 的…...

惠普OMEN游戏本性能释放终极指南:OmenSuperHub完全使用教程

惠普OMEN游戏本性能释放终极指南&#xff1a;OmenSuperHub完全使用教程 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度&#xff0c;自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否曾经为惠普OMEN游戏本的性能…...

告别代码阅读障碍:MultiHighlight智能高亮插件提升3倍开发效率

告别代码阅读障碍&#xff1a;MultiHighlight智能高亮插件提升3倍开发效率 【免费下载链接】MultiHighlight Jetbrains IDE plugin: highlight identifiers with custom colors &#x1f3a8;&#x1f4a1; 项目地址: https://gitcode.com/gh_mirrors/mu/MultiHighlight …...

Udemy课程下载器:如何高效离线学习Udemy课程内容?

Udemy课程下载器&#xff1a;如何高效离线学习Udemy课程内容&#xff1f; 【免费下载链接】udemy-downloader-gui A desktop application for downloading Udemy Courses 项目地址: https://gitcode.com/gh_mirrors/ud/udemy-downloader-gui 想要随时随地学习Udemy课程却…...

通过curl命令快速测试与调试大模型API接口

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过curl命令快速测试与调试大模型API接口 在开发或集成大模型应用时&#xff0c;有时我们需要绕过高级SDK&#xff0c;直接与API进…...

AI圈今日大事(2026-05-21)

AI圈今日大事&#xff08;2026-05-21&#xff09;1. 阿里云峰会&#xff1a;真武M890芯片 Qwen3.7-Max 双料齐发今日阿里云峰会上&#xff0c;阿里平头哥正式发布新一代训推一体AI芯片 真武M890&#xff1a;性能&#xff1a;相比前代真武810E提升3倍&#xff0c;内置144GB显存…...

Flutter 混合栈开发完全指南:原理、架构与双向跳转实战

在企业级移动端迭代中&#xff0c;几乎没人会把成熟的原生 App 全部重写为 Flutter。绝大多数场景都是 原有原生工程 部分 Flutter 新页面 的混合开发模式。而混合开发中最棘手、最核心的问题不是视图嵌入&#xff0c;也不是通道通信&#xff0c;而是 页面栈混乱&#xff1a;原…...

BarrageGrab:15+平台直播弹幕一体化采集方案,毫秒级延迟的WebSocket直连技术

BarrageGrab&#xff1a;15平台直播弹幕一体化采集方案&#xff0c;毫秒级延迟的WebSocket直连技术 【免费下载链接】BarrageGrab 抖音快手bilibili直播弹幕wss直连&#xff0c;非系统代理方式&#xff0c;无需多开浏览器窗口 项目地址: https://gitcode.com/gh_mirrors/ba/B…...