js的一些运算符规则

?? 是根据 null 和 undefined 判断的,

|| 是根据 布尔值 false 判断的, 左侧为true 不看右侧

&& 左侧为false 不看右侧

?. "可选链操作符",允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。在引用 null 或者 undefined 的情况下不会引起错误(主要是用于防止报错!)

一、&& 是与运算,左侧true返回右侧,左侧false直接返回左侧

let aa = true && false // aa是 false

let aa = false && true // aa是false

二、|| 是或运算,左侧true返回左侧,左侧false直接返回右侧

let aa = true || false // aa是true

let aa = false || true // aa是true

三、??空值合并操作符,只有当左侧是null和undefind,才会返回右侧,其余情况返回左侧,和 || 运算符类似,又有不同 || 运算符当左侧是假值的情况就会返回右侧,如 0 或者 ""

let aa = null ?? 1 // aa是1

let aa = null || 1 // aa是1

let aa = undefind ?? 1 // aa是1

let aa = undefind || 1 // aa是1

let aa = 0 ?? 1 // aa是0

let aa = 0 || 1 // aa是1

let aa = "" ?? 1 // aa是""

let aa = "" || 1 // aa是1

四、?.可选链操作符 a?.b 当a存在是返回a.b

let a = {}

let aa = a?.b // aa是undefind

let aa = a?.b ?? 123 // aa是123

let a = {b:1}

let aa = a?.b // aa是1

相关推荐
Ulyanov13 分钟前
《PySide6 GUI开发指南:QML核心与实践》 第二篇:QML语法精要——构建声明式UI的基础
java·开发语言·javascript·python·ui·gui·雷达电子对抗系统仿真
码界筑梦坊16 分钟前
357-基于Java的大型商场应急预案管理系统
java·开发语言·毕业设计·知识分享
anzhxu21 分钟前
Go基础之环境搭建
开发语言·后端·golang
聚美智数38 分钟前
企业实际控制人查询-公司实控人查询
android·java·javascript
yu85939581 小时前
基于MATLAB的随机振动仿真与分析完整实现
开发语言·matlab
SoaringHeart1 小时前
Flutter进阶:用OverlayEntry 实现所有弹窗效果
前端·flutter
赵钰老师1 小时前
【结构方程模型SEM】最新基于R语言结构方程模型分析
开发语言·数据分析·r语言
guygg881 小时前
利用遗传算法解决列车优化运行问题的MATLAB实现
开发语言·算法·matlab
gihigo19981 小时前
基于MATLAB实现NSGA-III的土地利用空间优化模型
开发语言·matlab
vastsmile1 小时前
(R)26.04.23 hermes agent执行本地命令超级慢的原因
开发语言·elasticsearch·r语言