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

相关推荐
丷丩11 分钟前
MapLibre GL JS第47课:添加动画图标
javascript·gis·动画·mapbox·maplibre
lihao lihao12 分钟前
Linux信号
开发语言·c++·算法
独泪了无痕17 分钟前
Vue3中防御XSS攻击的“特效药”-DOMPurify
前端·vue.js·安全
Java患者·23 分钟前
《Python 人脸识别入门实践:从人脸检测到人脸比对完整实现》
开发语言·python·opencv·目标检测·计算机视觉·目标跟踪·视觉检测
ceclar12324 分钟前
C# 的任务并行库(TPL)
开发语言·c#·.net
小小199228 分钟前
idea 配置less转化为css
前端·css·less
hhb_61830 分钟前
Less嵌套避坑:优先级冲突实战解析
前端·css·less
快乐的哈士奇34 分钟前
【Next.js实战①】Gmail API 按柜号检索邮件:OAuth 双 Cookie 与搜索 Fallback
开发语言·javascript·ecmascript
weixin_3077791338 分钟前
Python写入Shell文件使用Linux系统的换行符
linux·开发语言·python·自动化
云水一下40 分钟前
Vue.js从零到精通系列(五):全局状态管理——Pinia 核心与实践
前端·javascript·vue.js