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 分钟前
深入理解 Vue keep-alive:缓存本质、触发条件与生命周期对比
前端·javascript·vue.js
|晴 天|3 分钟前
WebAssembly:为前端插上性能的翅膀
前端·wasm
孟祥_成都5 分钟前
你可能不知道 react 组件中受控和非受控的秘密!
前端
火车叼位5 分钟前
ast-grep:结构化搜索与重构利器
前端
over6979 分钟前
深入理解 JavaScript 原型链与继承机制:从 instanceof 到多种继承模式
前端·javascript·面试
烂不烂问厨房13 分钟前
前端实现docx与pdf预览
前端·javascript·pdf
GDAL16 分钟前
Vue3 Computed 深入讲解(聚焦 Vue3 特性)
前端·javascript·vue.js
Moment19 分钟前
半年时间使用 Tiptap 开发一个和飞书差不多效果的协同文档 😍😍😍
前端·javascript·后端
前端加油站22 分钟前
记一个前端导出excel受限问题
前端·javascript
da_vinci_x27 分钟前
PS 生成式扩展:从 iPad 到带鱼屏,游戏立绘“全终端”适配流
前端·人工智能·游戏·ui·aigc·技术美术·游戏美术