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
全局中部横幅
链接99自动秒收录(lianjie99.cn)

链接99自动秒收录是一个各类信息免费发布的网站,可以发布外链交换,行业分类资讯信息,免费软文发布提交正规网址帮你进行快速收录同时支持网址自动收录.

无人技术导航

无人技术导航(www.w9r.cn)是国内的技术教程活动导航分类平台。收录全网优秀的技术网站及资源,满足用户随时查阅技术文章资讯教程上网,从我们的技术导航开始

南方周末

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

青岛新闻网首页

青岛地方互联网门户。青岛新闻网拥有在网民中具有高度影响力和号召力的门户论坛社区青青岛。网站下设青岛新闻、民生在线、微博,青岛房产,青岛汽车,青岛美食,青岛旅游等频道,是青岛互联网用户获取信息的媒体平台。

红网

湖南新闻综合门户网站,国内网站新闻影响力十强,中国地方新闻网站第一品牌,湖南省党网。2001年成立。提供新闻信息、生活资讯、视频直播、论坛博客、手机报、客户端、微博、电子商务、活动策划、舆情、广告等服务。设省直部门网群和13个市州、123个县市区分站。荣获过中国最具影响力新闻网站、中国十大创新传媒、最具品牌价值网站等荣誉,有百姓呼声、红辣椒评论等名牌栏目。

文多多

使用文多多AIPPT在几秒钟内创建令人惊叹的PowerPoint演示文稿。只需动动鼠标即可生成专业的幻灯片。

全考通资源网

全考通资源网提供考试资源下载,一级建造师、二级建造师、造价师、消防工程师、建筑师、资格考试、安全工程师、咨询工程师、公务员、考研、经济师、英语四六级等热门考试课件免费下载及分享平台。

79收录网

79收录网系统是一个专业收录优质网站的网址导航平台,提供简洁高效的网络入口。免费提交收录,发现实用工具、设计资源、程序员必备站,打造您的专属上网主页

易航收录网

易航导航收录网,致力于为站长提供一站式的网站快速收录服务。我们专注于高效、自动化的收录流程,确保您的网站能够在百度、搜狗、360等主流搜索引擎中迅速获得索引。同时,我们提供友情链接交换平台,帮助站长提升网站权重,优化SEO效果。加入易航收录网,让您的网站曝光更快,流量更高!