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 || '默认值'); // '默认值'(''是假值)
相关推荐
我命由我1234538 分钟前
72 法则极简理解
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
xian_wwq2 小时前
【学习笔记】OpenAI 兼容 API 服务化:从协议到 LLM Gateway(19/35)
笔记·学习
醉城夜风~3 小时前
SQL DQL数据查询语言全套学习笔记(基础查询→执行顺序全解析)
笔记·sql·学习
小L~~~4 小时前
MLIR学习笔记
笔记·学习·mlir
阿哟阿哟5 小时前
Ansys Electronics Desktop(hfss)仿真PCB(AD)
笔记
阿米亚波6 小时前
【C++ STL】std::deque
数据结构·c++·笔记·算法·stl
再玩一会儿看代码6 小时前
JUnit 测试框架详解:从实际开发、业务测试到 Java 面试高频问题
java·经验分享·笔记·junit·面试
巴巴媛6667 小时前
STM32学习笔记【36.CAN收发实验】
笔记·stm32·学习
xian_wwq7 小时前
【学习笔记】分布式推理:TP / PP / EP / CP 并行策略详解(20/35)
笔记·分布式·学习·ai
凉、介7 小时前
Linux 设备驱动匹配机制
linux·笔记·单片机·学习·操作系统·嵌入式