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

相关推荐
涛涛ing10 小时前
125秒到10秒:TypeScript 7.0用Go重写编译器,前端圈等了14年
前端
爱勇宝10 小时前
初创公司的“自己人”,到底能当多久?
前端·后端·程序员
程序猿乐锅10 小时前
【计算机组成原理 | 第六章】中央处理器 CPU
java·开发语言
晴天1610 小时前
前端模块化规范全景解析:CommonJS、AMD、ESM、UMD
前端
Terra.K10 小时前
ThreadLocal解决一个线程里面跨层传递问题
java·开发语言·后端
三十而立洋11 小时前
深入理解 npm:从核心机制到常用命令全解析
前端·前端工程化
Canace11 小时前
最新版 Codex 工作流的问题
前端·人工智能·agent
AZaLEan__11 小时前
事件循环讲解
javascript
变与不变80611 小时前
引用类型、内存原理与对象
开发语言·前端·javascript
wuyk55511 小时前
从零吃透 MQTT 通信|第 5 章 MQTT 心跳保活机制深度优化,断线检测与智能自动重连
c语言·开发语言·stm32·学习