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 || '默认值'); // '默认值'(''是假值)
相关推荐
Wang's Blog28 分钟前
PostgreSQL笔记49:向量检索核心算法、索引调优与过滤策略深度解析
笔记·算法·postgresql
疯狂打码的少年36 分钟前
【数据结构】交换类排序:冒泡与快速排序
数据结构·笔记·算法·排序算法
chnyi6_ya1 小时前
VideoHallu 论文阅读笔记
论文阅读·笔记
Wang's Blog1 小时前
PostgreSQL笔记51: 基于 pgvector 构建企业级智能问答系统
数据库·笔记·postgresql
自小吃多2 小时前
Capture软件原理图添加差分属性笔记
笔记·嵌入式硬件
日常筹谋记2 小时前
ATS选不对运维两行泪:数据中心市电与柴发切换场景的双电源自动转换开关选型笔记
运维·数据库·笔记
疯狂打码的少年2 小时前
【数据结构】哈希表:构造与冲突处理
数据结构·笔记·哈希算法·散列表
Wang's Blog3 小时前
PostgreSQL笔记50: 基于PGVECTOR的实时推荐与搜索系统构建
笔记·postgresql
liuyicenysabel14 小时前
多服务上线日记三:
运维·服务器·笔记·学习
CHENGQUAN_kenan14 小时前
佛山亚马逊卖家出口退税合规指南|9610免税、一般贸易退税、无票采购、申报误区全覆盖
大数据·经验分享·笔记·百度