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

devtools/2024/9/25 21:30:17/

学习目标:

js中强大的运算符

  • ?? 非空运算符

学习内容:

?? 非空运算符

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

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

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

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

javascript">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

javascript">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的时候才会使用默认值

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

http://www.ppmy.cn/devtools/38745.html

相关文章

学习笔记:IEEE 1003.13-2003【POSIX PSE51接口列表】

一、POSIX PSE51接口列表 根据IEEE 1003.13-2003,整理了POSIX PSE51接口API(一共286个),每个API支持链接查看。详细内容参考下面表格: SN Module/_POSIX_宏 Function File 1 POSIX_C_LANG_JUMP(2) longjmp() &…

开发体育赛事直播平台,研发技术选型与架构设计实现方案

本文将深入探讨“东莞梦幻网络科技”现成体育直播源码的技术实现方案,如何为用户提供流畅、互动、个性化的观赛体验。 一、技术栈选择:强强联合的基石1、后端开发:采用Java与PHP作为主要开发语言。Java以其强大的企业级应用支持,保…

UI组件库和内容文字的中英文切换

同时实现UI组件库(这里以ElementPlus为例)和内容文字的中英文切换 1. 安装vueI18n和element-plus pnpm i vue-i18n element-plus 2. 然后在项目中src目录下新建lang文件夹,里面新建en.ts和zh.ts还有index.ts index.ts import { createI18n } from vue-i18n impor…

杨辉三角的打印

题目内容: 在屏幕上打印杨辉三角。 思路: 首先我们通过观察发现,每一步的打印都与行列数有关,中间的数据由这一列和上一行的前一列数据控制。所以我们可以使用二维数组进行操作: (1&#xff…

蓝桥杯省三爆改省二,省一到底做错了什么?

到底怎么个事 这届蓝桥杯选的软件测试赛道,都说选择大于努力,软件测试一不卷二不难。省赛结束,自己就感觉稳啦,全部都稳啦。没想到一出结果,省三,g了。说落差,是真的有一点,就感觉和自己预期的…

【使用ChatGPT的API之前】OpenAI API提供的可用模型

文章目录 一. ChatGPT基本概念二. OpenAI API提供的可用模型1. InstructGPT2. ChatGPT3. GPT-4 三. 在OpenAI Playground中使用GPT模型-ing 在使用GPT-4和ChatGPT的API集成到Python应用程序之前,我们先了解ChatGPT的基本概念,与OpenAI API提供的可用模型…

通过QT自动生成的gitignore文件来说明用法

下面是QtCreator自动生成的gitignore原始文件,通过这个文件来说明gitignore的通配符的用法 其实这个文件用到的知识点只有下面几个: #开头的部分表示注释 *~表示忽略所有以~结尾的文件 *匹配所有的字符0次或者多次 core 表示忽略core文件和文件夹 !c…

网工路由基础——静态路由

一、静态路由的定义 静态路由是一种需要管理员手动配置的特殊路由。 二、静态路由的目的或背景 1)当网络结构比较简单时,只需要配置静态路由就可以使网络正常工作; 2)在复杂网络中,配置静态路由可以改进网络的性能&am…