JS中??和||的区别

?? (空值合并运算符) 和 || (逻辑或运算符) 的区别:

?? (空值合并运算符)

  • 只检测 nullundefined

  • 对于 0false''NaN假值会正常返回

javascript 复制代码
let a = null;
let b = undefined;
let c = 0;
let d = false;
let e = '';

console.log(a ?? '默认值'); // '默认值'(null)
console.log(b ?? '默认值'); // '默认值'(undefined)
console.log(c ?? '默认值'); // 0(不是null/undefined)
console.log(d ?? '默认值'); // false(不是null/undefined)
console.log(e ?? '默认值'); // ''(不是null/undefined)

|| (逻辑或运算符)

  • 检测所有"假值" (falsy values)

  • 假值包括:false0''nullundefinedNaN

javascript 复制代码
let a = null;
let b = undefined;
let c = 0;
let d = false;
let e = '';

console.log(a || '默认值'); // '默认值'
console.log(b || '默认值'); // '默认值'
console.log(c || '默认值'); // '默认值'(0是假值)
console.log(d || '默认值'); // '默认值'(false是假值)
console.log(e || '默认值'); // '默认值'(''是假值)
相关推荐
U盘失踪了1 小时前
Browser Use — AI驱动浏览器自动化的全新范式
笔记·自动化
疯狂打码的少年1 小时前
Cache的三种映射方式(直接/全相联/组相联)
linux·服务器·数据库·笔记
RainCity2 小时前
Java Swing 自定义组件库分享(十)
java·笔记·后端
FakeOccupational3 小时前
【数学 代数学】无理数:\sqrt2和\pi 是无理数的证明 + 无理数集合的“非正则”性质(暂记)
笔记
是小王同学啊~3 小时前
Kafka 面试通关笔记:高频八股 + 生产实战 + 追问链路(上)
笔记·面试·kafka
AOwhisky3 小时前
Ceph系列第三期:Ceph 集群核心配置与管理
linux·运维·数据库·笔记·ceph
我命由我123454 小时前
UGC、PGC、PUGC 极简理解
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
智者知已应修善业4 小时前
【51单片机象棋快棋赛 电子裁判器】2023-12-27
c++·经验分享·笔记·算法·51单片机
香蕉鼠片4 小时前
深度学习花卉识别笔记
人工智能·笔记·深度学习