返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript中可选链(?.)用法示例详解
  • 249
分享到

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

JavaScript可选链(?.)JavaScript 可选链用法 2023-05-16 14:05:14 249人浏览 安东尼
摘要

目录简介和其它相似方法的区别总结简介 在javascript中,我们经常需要处理JSON数据对象,而jsON数据对象的层级较深,处理其属性值时就会显得较为麻烦,此时可选链(Opti

简介

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可选链(?.)用法的资料请关注编程网其它相关文章!

--结束END--

本文标题: JavaScript中可选链(?.)用法示例详解

本文链接: https://lsjlt.com/news/209980.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript中可选链(?.)用法示例详解
    目录简介和其它相似方法的区别总结简介 在JavaScript中,我们经常需要处理JSON数据对象,而JSON数据对象的层级较深,处理其属性值时就会显得较为麻烦,此时可选链(Opti...
    99+
    2023-05-16
    JavaScript可选链(?.) JavaScript 可选链用法
  • ts 类型体操 Chainable Options 可链式选项示例详解
    目录问题答案传参option部分get问题 在JavaScript我们通常会使用到可串联(Chainable/Pipline)的函数构造一个对象,但是在Typescript中,你能合...
    99+
    2024-04-02
  • JavaScript中的可选链怎么使用
    这篇文章主要介绍“JavaScript中的可选链怎么使用”,在日常操作中,相信很多人在JavaScript中的可选链怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript中的可选链怎么使用...
    99+
    2023-07-06
  • 可选链操作符(?.)的示例分析
    这期内容当中小编将会给大家带来有关可选链操作符(.)的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。什么是可选链操作符(.)可选链操作符(.)允许读取位于连接对象...
    99+
    2024-04-02
  • JavaScript中高级语法??表达式用法示例详解
    目录前言具体用法。那么双问号表达式和其他的相似方法有什么不同呢?那么二者之间有什么明显的区别呢?总结前言 在JavaScript中,双问号()表达式是一种非常有用的方法。它的作用是...
    99+
    2023-05-16
    JavaScript语法??表达式 JavaScript高级语法
  • JavaScript中的FileReader示例详解
    目录前言:input:fileFileReader补充:一个比较全面的例子总结前言: FileReader是一种异步文件读取机制,结合input:file可以很方便的读取本地文件。 ...
    99+
    2024-04-02
  • 如何在JavaScript中使用可选链操作符
    这篇文章将为大家详细讲解有关如何在JavaScript中使用可选链操作符,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。可选链操作符(.)语法obj.propobj.[expr]func.(a...
    99+
    2023-06-15
  • JavaScript实现LRU算法的示例详解
    目录LRU简介如何实现实现思路缺陷双向链表+哈希表双向链表实现思路不知道屏幕前的朋友们,有没有和我一样,觉得LRU算法原理很容易理解,实现起来却很复杂。 明明一个map就能解决,标准...
    99+
    2023-05-17
    JavaScript实现LRU算法 JavaScript LRU算法 JavaScript LRU
  • JavaScript之instanceof方法手写示例详解
    目录方法介绍instanceof 是什么?instanceof 使用方式开始手写方法介绍 instanceof 是什么? 用于检测构造函数的 prototype 属性是否出现在某个实...
    99+
    2022-11-13
    JavaScript instanceof 方法 JavaScript instanceof
  • 示例详解react中useState的用法
    useState useState 通过在函数组件里调用它来给组件添加一些内部 state。React 会在重复渲染时保留这个 state。useState 会返回一对值:当前状态...
    99+
    2024-04-02
  • MySql中JOIN的用法示例详解
    目录笛卡尔积:CROSS JOIN内连接:INNER JOIN左连接:LEFT JOIN右连接:RIGHT JOIN外连接:OUTER JOINUSING子句自然连接:NATURE ...
    99+
    2024-04-02
  • Python中的Super用法示例详解
    目录Python Super用法附:super的典型用法总结 Python Super用法 这篇文章我们来介绍一下 super,我相信大部分的人使用 super 都是使用这...
    99+
    2024-04-02
  • JavaScript中JSON.parse()的用法示例
    这篇文章将为大家详细讲解有关JavaScript中JSON.parse()的用法示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 JavaScript中 JSON.p...
    99+
    2024-04-02
  • JavaScript中JSON.stringify()的用法示例
    这篇文章主要介绍了JavaScript中JSON.stringify()的用法示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、使用方法1、基本用法JSON.string...
    99+
    2023-06-15
  • JavaScript中的动态 import()用法示例解析
    目录前言动态导入优点总结前言 随着前端技术的不断发展,JavaScript已经成为了广泛应用的编程语言之一。 在开发过程中,大量的JS代码会导致页面加载缓慢,进而影响用户体验。为了...
    99+
    2023-05-16
    JavaScript动态import用法 JavaScript import()
  • JavaScript中事件委托的示例详解
    目录事件流事件委托结尾大家好,我是前端西瓜哥。今天我们来认识一下事件委托。 所谓事件委托,就是将原本应该在当前元素绑定的事件,放到它的祖先元素上,让祖先元素来委托处理。 事件流 事件...
    99+
    2024-04-02
  • MySQL中find_in_set()函数用法示例详解
    目录1、 find_in_set()官方涵义(MySQL手册中语法说明)2、find_in_set() 和 in 的区别3、应用场景3.1 文章表type字段查询3.2 部门树查询,...
    99+
    2024-04-02
  • Mysql using 用法示例详解
    目录示例第一种第二种第三种示例 在平时,我们做关联表查询的时候一般是这样的 select * from 表1 inner join 表2 on 表1.相同的列=表2.相同的...
    99+
    2024-04-02
  • JavaHttpClient用法的示例详解
    目录1、导入依赖2、使用工具类3、扩展1、导入依赖 <dependency> <groupId>org.apache.httpcomponents&l...
    99+
    2024-04-02
  • Spring@value用法示例详解
    目录一、两种使用方法二、配置2.1 @Value(“#{configProperties[‘key’]}”)使用2.1.1配置文件:2...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作