es6中 ?? 与 || 区别

es6中 ?? 与 || 区别

自我记录

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

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

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

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

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

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

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

相关推荐
非优秀程序员11 小时前
第10章 千团出世|《互联网产品恩仇录》
前端
非优秀程序员12 小时前
第11章 小高在对面|《互联网产品恩仇录》
前端
非优秀程序员12 小时前
第14章 只剩美团|《互联网产品恩仇录》
前端
非优秀程序员12 小时前
第09章 老乡何必为难老乡|《互联网产品恩仇录》
前端
非优秀程序员12 小时前
第07章 孙德良的阳谋|《互联网产品恩仇录》
javascript·后端
非优秀程序员12 小时前
第03章 三大门户,烽烟起于瀛海威|《互联网产品恩仇录》
前端
程序员大阳16 小时前
HTML+CSS+JS对话式实战(5)-活动管理页之查看报名名单的实现
javascript·css·html·查看报名名单
曦樂~16 小时前
【Web Development】02 CSS
前端·css
风骏时光牛马16 小时前
后端服务接口开发与数据逻辑处理
前端
东鹏特饮16 小时前
经典打砖块(Breakout)游戏
前端·css·css3