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

相关推荐
kyriewen12 分钟前
我把 AI 写的并发请求控制器手写了一遍——3 个语义我当时根本讲不清
前端·javascript·面试
SomeB1oody18 分钟前
【RustyML入门】6.0. 数学工具
开发语言·后端·机器学习·rust·教程
_codemonster41 分钟前
Vue中的ref和reactive到底在干嘛
前端·javascript·vue.js
IT_陈寒1 小时前
为什么我的JavaScript闭包总是漏掉那个变量?
前端·人工智能·后端
进制树1 小时前
【飞控开发实战·⑲】ROS2无人机开发环境搭建:Jazzy安装、工作空间与hello_drone节点实战
开发语言·安全·无人机·课程设计
两只羊ovo1 小时前
前端八股之 storage & this:两个最容易卡住的点,一次讲透
前端
牛马也想出海1 小时前
亚马逊爬虫代理IP:IP类型选择与配置指南
开发语言·php
用户921080262861 小时前
Bubble 打字机效果实践:从项目配置到源码实现
前端
菜冻鱼2 小时前
Python-pytorch-高级技巧
开发语言·人工智能·pytorch·python·深度学习·神经网络·聚类