JS中空值合并运算符 ?? 的使用_javascript技巧

文章编号:1012 技术教程 2026-02-04 js 空值合并运算符 JS  ??

空合并运算符 ?? (Nullish coalescing operator)  是一个逻辑运算符,当其左侧操作数为 null 或 undefined 时,它返回其右侧操作数,否则返回其左侧操作数

与 逻辑或 (||) 运算符不同,空值合并运算符只会考虑 null 和 undefined,而不会将其他假值(如 false0NaN"" 空字符串等)视为需要替代的值。

let a = null;let b = 5;let c = undefined;let d = 0;console.log(a ?? b); // 5,因为 a 是 nullconsole.log(c ?? b); // 5,因为 c 是 undefinedconsole.log(d ?? b); // 0,因为 d 不是 null 或 undefined,而是 0

比较 ?? 和 ||

let x = 0;let y = 10;console.log(x || y); // 10,因为 x 是假值(0)console.log(x ?? y); // 0,因为 x 不是 null 或 undefined

在上面的例子中:

提供默认值: 当一个值可能为 null 或 undefined 时,可以用 ?? 来提供一个默认值。

let userAge = null;let defaultAge = 18;let age = userAge ?? defaultAge;console.log(age); // 18,因为 userAge 是 null

避免无效值: 当你有多个潜在的 null 或 undefined 值时,可以使用空值合并运算符来选择第一个有效值。

空值合并运算符和可选链(?.)结合使用时,能够更安全地访问对象的属性,并且提供一个默认值。

let user = { name: "Alice" };let userAge = user?.age ?? 18;console.log(userAge); // 18,因为 user 对象中没有 `age` 属性,所以返回默认值 18

在这个例子中,?. 用于安全地访问 user.age,如果 age 不存在,它返回 undefined,然后 ?? 提供默认值 18

很多人会搞混?? 运算符 与 || 运算符,觉得这两个实现的效果都一样。其实这是不严谨的,它们之间还是有一些细微的差别。?? 和 || 主要区别在于 假 (false) 和 假值(falsy) 的区别。

// 1. 使用 0 作为输入 const a = 0;console.log(`a || 10 = ${a || 10}`); // a || 10 = 10console.log(`a ?? 10 = ${a ?? 10}`); // a ?? 10 = 0// 2. 空字符串 '' 作为输入const a = ''console.log(`a || "ABC" = ${a || "ABC"}`); // a || "ABC" = ABCconsole.log(`a ?? "ABC" = ${a ?? "ABC"}`); // a ?? "ABC" = // 3. 使用 null 作为输入const a = null;console.log(`a || 10 = ${a || 10}`); // a || 10 = 10console.log(`a ?? 10 = ${a ?? 10}`); // a ?? 10 = 10// 4. 使用 undefined 作为输入const a = {name: ''}console.log(`a.name ?? 'varun 1' = ${a.name ?? 'varun 1'}`); console.log(`a.name || 'varun 2' = ${a.name || 'varun 2'}`);// a.name ?? 'varun 1' = // a.name || 'varun 2' = varun 2// 5. 使用 false 作为输入const a = false;console.log(`a || 10 = ${a || 10}`); // a || 10 = 10console.log(`a ?? 10 = ${a ?? 10}`); // a ?? 10 = false

到此这篇关于JS中空合并运算符 ?? 的使用的文章就介绍到这了,更多相关JS 空合并运算符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


本文地址: https://www.earthnavs.com/jishuwz/7ce913f7d56b416964c1.html
全局中部横幅
站长收录网

站长目录,是一个流量互增的自动外链平台,可以给你网站增加反向链接,加快百度收录,是您迅速提升网站流量的网络推广必备工具。

博客园

专注于为开发者服务,帮助开发者用代码改变世界

Linux命令大全(手册)

专注于Linux命令大全与详解的在线命令查询网站,包含Linux命令手册、Linux命令详解、Linux命令学习与shell脚本编程大全等优质学习资料,准确,丰富,稳定,在技术之路上为您护航!

新浪娱乐首页

新浪娱乐是最新最全面的娱乐新闻信息综合站点,包括明星、电影、最新影讯/影评、电影院在线购票订座、电视剧、音乐、戏剧、演出等娱乐信息。

奥一网

奥一新闻是广东南都全媒体网络科技有限公司旗下核心新闻平台,具备互联网新闻信息采编发布服务资质。奥一新闻目前已经搭建立体矩阵传播体系,包括小程序、移动端、网站、奥一官微、奥一财经微信,并通过南都app全网分发内容。

融云

融云,专业、简单、稳定的全球互联网通信云服务商。向开发者和企业提供即时通讯/实时音视频通信/大模型API等通讯服务,支持多种语言和部署模式:公有云、私有云、专有云和混合云,服务盖全球所有国家及地区。

群英网络

群英网络专业智能安全云计算服务商,17年老牌IDC商。提供高防服务器、云服务器、香港服务器、服务器租用托管等,全新二代智能平台,提供全方位云安全解决方案。群防超过1500G盾,BGP神级防护线路.

万汇资源网

万汇资源网(dosxs.com)专注于网络资源分享,提供电商技术教程,网站源码,网站模板,电商网赚教程,脚本工具,应用程序,我们致力打造一个优质的网站资源分享平台。

网络空间测绘

FOFA是白帽汇推出的一款网络空间搜索引擎,它通过进行网络空间测绘,能够帮助研究人员或者企业迅速进行网络资产匹配,例如进行漏洞影响范围分析、应用分布统计、应用流行度排名统计等。

浏览器安全检测中

该站点未添加描述description...