我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript中可选链(?.)用法示例详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript中可选链(?.)用法示例详解

简介

JavaScript中,我们经常需要处理JSON数据对象,而JSON数据对象的层级较深,处理其属性值时就会显得较为麻烦,此时可选链(Optional Chaining)就派上用场了。

可选链是一种方便的语法糖,可以简化层级深的对象属性访问的过程。也就是说,在访问一个对象中的属性时,如果该属性不存在,我们将不必再像以前那样判断对象的每一层级是否存在这个属性,而是使用可选链的方式直接访问,代码的可读性和简洁性也得到了极大的提升。

下面举个例子,假设我们有一个表示学生的json对象,里面包含了学生的姓名、年龄和地址等详细信息。现在我们需要使用一系列“.”来访问其中每个属性,这时代码就显得很冗长:

const student = {
    name: "张三",
    age: 18,
    address: {
        province: "北京",
        city: "朝阳区",
        street: "南湖东路1号"
    }
};
let street = "";
if (student.address && student.address.province === "北京" && student.address.city === "朝阳区") {
    street = student.address.street;
}
console.log(street);

上面的代码中,我们使用了冗长的if语句来验证是否存在地址信息,并且访问该地址的街道信息。

而使用可选链的方式,我们可以更加简洁的实现:

const student = {
    name: "张三",
    age: 18,
    address: {
        province: "北京",
        city: "朝阳区",
        street: "南湖东路1号"
    }
};
const street = student?.address?.province === "北京" && student.address.city === "朝阳区" ? student.address.street : "";
console.log(street);

代码中的 "?. " 是可选链操作符,它允许我们在属性的值可能为 undefined 的情况下安全地访问对象的属性。例如,在这个示例中,如果属性 student.addressstudent.address.cityundefined,则最后的结果也将是 undefined,我们就无需再做逐个判断了,更具可读性。

另外一个细节是可选链问号 ? 只能用在点 . 符号之前。如果前面的变量或表达式为 nullundefined,那么整个表达式的返回值就是 undefined

值得注意的是,可选链操作符只在最新版的ES2020规范中被正式引入,在一些旧版本下可能会有不兼容的问题。

和其它相似方法的区别

和可选链类似的语法糖还有其它一些方法,如“&&”,使用它们的方式和可选链有些许不同。

举个例子,我们假设有一个user对象用于存储人们的姓名和地址信息,其中address也是一个对象类型,里面包含了省市区等信息:

const user = {
    name: "Amy",
    address: {
        province: "湖北省",
        city: "武汉市",
        area: "洪山区",
    }
}

如果要获取用户所在区域,我们可以使用&&运算符将它们连接起来实现类似于可选链式的访问方式:

const area = user.address && user.address.area;// 洪山区

然而,这种方法在处理对象层次结构较多的对象时会显得很麻烦。在这种情况下,可选链会更加直观和方便。

我们可以使用可选链,以更加简练和易于阅读的方式来访问属性:

const area = user?.address?.area

总结

使用可选链可以为写代码带来更加直观和方便的体验

以上就是JavaScript中可选链(?.)用法示例详解的详细内容,更多关于JavaScript可选链(?.)用法的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript中可选链(?.)用法示例详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JavaScript中可选链(?.)用法示例详解

这篇文章主要为大家介绍了JavaScript中可选链(?.)用法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-16

JavaScript中的可选链怎么使用

这篇文章主要介绍“JavaScript中的可选链怎么使用”,在日常操作中,相信很多人在JavaScript中的可选链怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript中的可选链怎么使用
2023-07-06

JavaScript中高级语法??表达式用法示例详解

这篇文章主要为大家介绍了JavaScript中高级语法??表达式用法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-16

如何在JavaScript中使用可选链操作符

这篇文章将为大家详细讲解有关如何在JavaScript中使用可选链操作符,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。可选链操作符(?.)语法obj?.propobj?.[expr]func
2023-06-15

JavaScript实现LRU算法的示例详解

不知道屏幕前的朋友们,有没有和我一样,觉得LRU算法原理很容易理解,实现起来却很复杂。所以本文就为大家整理了一下实现的示例代码,需要的可以参考一下
2023-05-17

JavaScript之instanceof方法手写示例详解

这篇文章主要为大家介绍了JavaScript之instanceof方法手写示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

JavaScript中JSON.stringify()的用法示例

这篇文章主要介绍了JavaScript中JSON.stringify()的用法示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、使用方法1、基本用法JSON.string
2023-06-15

JavaScript中的动态 import()用法示例解析

这篇文章主要为大家介绍了JavaScript中的动态import()用法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-16

编程热搜

目录