JavaScript中的 ?? 和 || 有那些区别详解
在JavaScript中,??(空值合并运算符)和||(逻辑或运算符)都可以用来处理变量值,但是切记这俩玩意不一样,是有区别的。
??(空值合并运算符)
空值合并运算符 (??)是一个逻辑运算符,当左侧的操作数为null或undefined时,返回右侧的操作数;否则,返回左侧的操作数。
let a = null; let b = 5; let result = a ?? b; // result 将是 5,因为 a 是 null let c = 0; let d = "hello"; let result2 = c ?? d; // result2 将是 0,因为 c 不是 null 或 undefined
||(逻辑或运算符)
逻辑或运算符 (||)是一个短路逻辑运算符,当左侧的操作数为假值(如false、0、""、null、undefined 或 NaN)时,返回右侧的操作数;否则,返回左侧的操作数。
let x = 0; let y = "default"; let result3 = x || y; // result3 将是 "default",因为 0 被视为假值 let z = null; let w = "hello"; let result4 = z || w; // result4 将是 "hello",因为 null 被视为假值 let result5 = null || undefined || 0 || ""; // 全是假值时,会返回最后一个 ''
区别
假值检查:
??只检查null或undefined。||检查所有假值(false、0、""、null、undefined、NaN)。
类型强制转换:
??不会对操作数进行类型转换,它直接返回原始值。||会进行类型强制转换,如果左侧的操作数可以转换为假值,则返回右侧的操作数。
使用场景:
??通常用于设置默认值,当左侧的值可能为null或undefined时。||以前常用于设置默认值,但现在推荐使用??,因为它更准确地处理了 null 和 undefined 的情况。
总结
到此这篇关于JavaScript中的 ?? 和 || 有那些区别的文章就介绍到这了,更多相关JS中??和||区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
这篇文章主要介绍了使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条效果,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友可以参考下2017-01-01
JavaScript 中的“ / ”:路径、资源与目录、nginx配置、请求、转义全面解析
JavaScript中斜杠/在路径分隔、路由、资源引用中具有多重含义,需区分目录与文件、相对/绝对路径,本文给大家介绍JavaScript 中的“ / ”:路径、资源与目录、nginx配置、请求、转义全面解析,感兴趣的朋友一起看看吧2025-08-08


最新评论