当前位置: 首页 > 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 }
http://www.lryc.cn/news/348556.html

相关文章:

  • 【MATLAB源码-第207期】基于matlab的单相光伏并网系统仿真,并网策略采用基于扰动观测法的MPPT模型和使用电压电流双闭环SPWM控制。
  • java发送请求-二次开发-get请求json
  • Typescript高级: 对泛型和多态的应用, 实现Java中的ArrayList和LinkedList
  • 正则表达式常用特殊字符(元字符)说明
  • 使用hdc TCP模式无线方式连接OpenHarmony设备
  • 杂记-记一次前端打包问题解决过程
  • 维修ABB示教器主板DSQC679 3HAC 033624-001 /R机器人液晶显示屏深圳捷达工控维修
  • 原子学习笔记3——点亮 LED
  • 齐护K210系列教程(十八)_识别条码
  • K折交叉验证
  • Docker 的 Ubuntu 操作系统镜像
  • 【Python】Python中的logging模块介绍和示例
  • PXIe规格i3/i5/i7单板计算机控制器
  • 弱网对抗的策略有哪些?
  • 如何通过OMS加快大表迁移至OceanBase
  • 讨论:WGS84与CGCS2000的坐标系怎么互转
  • SpringCloud面试题
  • 深入了解Java Stream中的Collectors.partitioningBy()
  • 下拉多选【bootstrap-multiselect】
  • 建筑(八大员)报考条件
  • _remote.repositories作用
  • 2.3 Spark运行架构与原理
  • redis的跳表
  • 探索未知,开启海外盲盒新纪元——海外盲盒App,你的全球奇遇宝箱
  • LeetCode2215找出两数组的不同
  • Git系列:git show 使用技巧
  • python爬虫(五)之新出行汽车爬虫
  • 记录:卡尔曼滤波推导
  • AI游戏外挂为何违法?
  • UVa1006/LA2238 Fixed Partition Memory Management