es6中 ?? 与 || 区别

es6中 ?? 与 || 区别

自我记录

??||都是逻辑运算符,但它们的作用不同。
??是空值合并运算符,它用于检查左侧的表达式是否为nullundefined。如果是nullundefined,则返回右侧的表达式;如果不是,则返回左侧的表达式

ts 复制代码
let foo = null;
let bar = foo ?? 'default'; // bar 的值为 'default'

let baz; 
let qux = baz ?? 'default'; // qux 的值为 'default'

||是逻辑或运算符,它用于检查左侧的表达式是否为假。如果左侧的表达式为假,则返回右侧的表达式;如果左侧的表达式为真,则返回左侧的表达式。在JavaScript中,只有nullundefined''0NaN被视为假值,其他值都被视为真值。

ts 复制代码
let foo = 'hello';
let bar = foo || 'default'; // bar 的值为 'hello'

let baz; 
let qux = baz || 'default'; // qux 的值为 'default'

因此,??||的区别在于它们的逻辑行为和使用场景。??用于空值合并,而||用于逻辑或

相关推荐
阿黎梨梨2 分钟前
从零搞懂 JWT 登录鉴权:一张“电子通行证”的诞生记
前端
全栈项目管理程序猿2 分钟前
ArcGIS JS 基础教程(12):视图截图 takeScreenshot
javascript
用户921080262862 分钟前
ChatMessageList 消息列表组件:基于 BubbleList 搭建 AI 对话展示区
前端
HjhIron6 分钟前
实战 React + JWT + Zustand:从零搭建登录鉴权系统
前端
小棉花的ai跨境之旅7 分钟前
Codex 子 Agent 分工实战:Sol 当军师、Luna 当搬砖工,单任务成本压到 $0.61
javascript
晴天1628 分钟前
DeepSeek Harness 全景技术解析-Day23
前端·deepseek
风月说与山鬼35 分钟前
三、uni-app页面配置(pages.json)
前端·uni-app
daols8839 分钟前
vue 实现基于 vxe-table 构建多维度产品对比表
前端·javascript·vue.js
前端 贾公子42 分钟前
第08章:中间件(5)
服务器·前端·javascript
tech_zjf1 小时前
当 AI 把 Next.js Route 越写越快:我为什么做了 next-route-kit
前端·后端