你应该知道的 6 个 ES9 功能:Object Rest 和 Spread、承诺.allSettled() 和更多

你应该知道的 6 个 ES9 功能:Object Rest 和 Spread、承诺.allSettled() 和更多

ES9 (ECMAScript 2018)是 JavaScript 的最新版本,它引入了一些新的功能和语法,以帮助开发人员更有效地编写代码。在本文中,我们将介绍 ES9 中的 6 个功能,包括 Object Rest 和 Spread、承诺.allSettled(),正则表达式命名捕获组和更多。

  1. Object Rest 和 Spread

Object Rest 和 Spread 是一个新的语法,在 ES9 中引入。它允许您轻松地从一个对象中获取一些属性,并将其余的属性放入一个新的对象中。例如:

----- ------ - -
  ---------- -------
  --------- ------
  ---- ---
  ------ ---------------------
--

----- - ---------- --------- ------- - - -------

----------------------- -- ------
---------------------- -- -----
------------------ -- - ---- --- ------ --------------------- -

在上面的代码中,我们使用 Object Rest 和 Spread 语法从 person 对象中获取 firstNamelastName 属性,并将其余的属性放入 rest 对象中。

  1. 承诺.allSettled()

Promise.allSettled() 是一个新的 Promise 方法,在 ES9 中引入。它接受一个 Promise 数组,并返回一个新的 Promise,该 Promise 将在所有 Promise 完成或拒绝后解决。与 Promise.all() 不同,Promise.allSettled() 不会在任何 Promise 拒绝时拒绝。例如:

----- -------- - ------------------------ ----
----- -------- - --------------------- ----
----- -------- - ------------------------ ----

----------------------------- --------- ----------
  ------------- -- ----------------------

-- -------
-- -
--   - ------- ------------ ------ -------- -- --
--   - ------- ----------- ------- ------ -- --
--   - ------- ------------ ------ -------- -- -
-- -

在上面的代码中,我们使用 Promise.allSettled() 方法来等待所有 Promise 完成或拒绝。结果数组包含每个 Promise 的状态和结果或拒绝理由。

  1. 正则表达式命名捕获组

正则表达式命名捕获组是一个新的语法,在 ES9 中引入。它允许您使用命名捕获组来捕获匹配的子字符串。例如:

----- ---- - ----- --- -----------------------

----- ----- - --------------------- ---------------------
----- ----- - ------------------

------------------------------- -- ----- ----
-------------------------------- -- ---------------------

在上面的代码中,我们使用正则表达式命名捕获组来捕获 text 变量中的名称和电子邮件地址。

  1. Array.prototype.flat()

Array.prototype.flat() 是一个新的数组方法,在 ES9 中引入。它允许您将多维数组扁平化为单个数组。例如:

----- --- - --- -- --- -- --- -----

----- --------- - ------------

----------------------- -- --- -- -- -- -- --

在上面的代码中,我们使用 Array.prototype.flat() 方法将 arr 数组扁平化为单个数组。

  1. String.prototype.trimStart() 和 String.prototype.trimEnd()

String.prototype.trimStart()String.prototype.trimEnd() 是两个新的字符串方法,在 ES9 中引入。它们允许您从字符串的开头或结尾删除空格。例如:

----- ---- - -   ------ ------   --

------------------------------ -- ------- ------   -
---------------------------- -- -   ------ -------

在上面的代码中,我们使用 String.prototype.trimStart()String.prototype.trimEnd() 方法从 text 字符串的开头和结尾删除空格。

  1. Async / Await

Async / Await 是一种新的异步编程语法,在 ES9 中引入。它允许您使用类似于同步代码的语法编写异步代码。例如:

----- -------- ----------- -
  ----- -------- - ----- ------------------------------------------------------
  ----- ---- - ----- ----------------
  ------ -----
-

--------------------- -- -------------------

在上面的代码中,我们使用 Async / Await 语法来异步获取数据并打印结果。

总结

在本文中,我们介绍了 ES9 中的 6 个新功能,包括 Object Rest 和 Spread、承诺.allSettled()、正则表达式命名捕获组、Array.prototype.flat()、String.prototype.trimStart() 和 String.prototype.trimEnd()、Async / Await。这些新功能可以帮助开发人员更有效地编写 JavaScript 代码。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/662b643fd3423812e48f0878


猜你喜欢

  • 在 Kubernetes 集群中使用 Ingress Controller 实现反向代理和负载均衡

    什么是 Ingress Controller 在 Kubernetes 集群中,Ingress Controller 是一种用于管理入站网络流量的 Kubernetes 资源。

    6 个月前
  • Hapi 框架中的 CORS 问题及其解决方法

    CORS(Cross-Origin Resource Sharing)是一种浏览器技术,它允许 Web 应用程序在不同的域名下进行资源共享。在 Hapi 框架中,CORS 问题可能会影响到 Web 应...

    6 个月前
  • TypeScript 中的 export 和 import 的使用

    介绍 TypeScript 是一种开源的编程语言,它是 JavaScript 的超集,可以编译成纯 JavaScript 代码。TypeScript 扩展了 JavaScript 的语法,增加了类型系...

    6 个月前
  • BigInt:ES10 中新增的大整数类型

    在前端开发中,我们经常会遇到需要处理大整数的情况,比如密码学、数字签名等领域。在过去,JavaScript 中只提供了 number 类型,但是这种类型的范围是有限的,只能表示 2 的 53 次方以内...

    6 个月前
  • 如何使用 React Native 实现抽象动画

    React Native 是一种基于 React 的跨平台移动应用开发框架,它可以使用 JavaScript 和 React 的语法来编写原生应用。在使用 React Native 开发应用时,我们经...

    6 个月前
  • RxJS 中的 distinctUntilChanged 操作符使用示例

    在 RxJS 中,distinctUntilChanged 操作符用于过滤掉连续重复的数据项。它可以帮助我们优化代码,减少不必要的计算和网络请求,提高性能和用户体验。

    6 个月前
  • Server-sent Events 实现在线博客回顾系统

    前言 在现如今的互联网时代,博客已经成为了人们分享自己想法和知识的主要方式之一。但是,对于博客作者来说,如何知道自己的博客被读者阅读的情况呢?传统的方式是通过后端轮询来实现,但这种方式会对服务器造成很...

    6 个月前
  • Docker Swarm 集群部署教程

    前言 Docker 是目前最受欢迎的容器技术,它可以帮助开发者快速构建、打包、发布和运行应用程序。而 Docker Swarm 则是 Docker 官方提供的一种容器编排工具,可以帮助开发者更好地管理...

    6 个月前
  • ESLint 插件之 eslint-plugin-jsx-a11y 的使用教程

    随着前端技术的不断发展,Web 网页的可访问性也越来越重要。在开发过程中,我们需要考虑到一些特殊用户如视障人士对我们网站的访问需求。而 eslint-plugin-jsx-a11y 是一个 ESLin...

    6 个月前
  • TailwindCSS 如何添加浮动效果?

    TailwindCSS 是一种快速构建现代网页界面的工具,它提供了丰富的 CSS 类,可以让我们快速地实现各种样式效果。其中,浮动效果是网页布局中常用的一种效果,本文将介绍如何使用 TailwindC...

    6 个月前
  • Redux 调试技巧:使用 Redux-Persist 进行持久化存储调试

    在前端开发过程中,Redux 是一个非常常用的状态管理工具。Redux 可以让我们更好地组织和管理应用程序的状态,但是在开发过程中,我们常常需要调试 Redux 状态的变化,以便更好地理解应用程序的行...

    6 个月前
  • 借助 Mocha 框架对 AngularJS 控制器的单元测试

    前言 在前端开发中,单元测试是不可或缺的一环。它可以帮助我们在代码变动时迅速发现问题并及时修复,保证代码的质量和稳定性。而 Mocha 是一个功能强大的 JavaScript 测试框架,它可以帮助我们...

    6 个月前
  • Fastify 框架最佳实践:开发 Web 应用 Docker 容器优化思路

    在 Web 应用开发中,Fastify 框架已经成为了一个备受欢迎的选择。它是一个快速、低开销的 Node.js Web 框架,可以帮助开发者构建高性能的 Web 应用。

    6 个月前
  • Enzyme 调试技巧

    Enzyme 调试技巧 随着前端技术的不断发展,单元测试在前端开发中变得越来越重要。而 Enzyme 是 React 中最流行的测试工具之一,它可以模拟组件的行为和状态,让我们能够方便地编写测试用例。

    6 个月前
  • CSS Flexbox 布局中的 justify-content 属性详解

    CSS Flexbox 布局是一种现代的、灵活的布局方式,它可以让我们更加高效地实现网页布局。而其中的 justify-content 属性则是控制水平方向上的对齐方式的重要属性之一。

    6 个月前
  • ECMAScript 2016 (ES7) 中的 Object.is() 方法和 Object.setPrototypeOf() 方法详解

    前言 JavaScript 是一门动态语言,其语言规范也在不断地更新,2016 年发布的 ECMAScript 2016(ES7)规范中,新增了一些有用的方法,本文将介绍其中的 Object.is()...

    6 个月前
  • Docker 部署 Java Web 应用的示例

    前言 Docker 是一个开源的应用容器引擎,可以通过将应用程序与依赖项打包到一个容器中,实现快速部署、可移植、可扩展的应用程序。本文将介绍如何使用 Docker 部署 Java Web 应用程序。

    6 个月前
  • Deno 精美 Web 应用社区分享

    什么是 Deno? Deno 是一个基于 TypeScript 和 V8 引擎的运行时环境,用于构建 JavaScript 和 TypeScript 应用程序。它由 Node.js 的创始人 Ryan...

    6 个月前
  • RxJS 的 combineLatest 操作符使用方法

    RxJS 是一个强大的 JavaScript 函数式编程库,它提供了许多操作符来帮助我们更方便地处理数据流。其中一个非常有用的操作符是 combineLatest,它可以将多个数据流合并成一个新的数据...

    6 个月前
  • Server-sent Events 的一些实际例子

    什么是 Server-sent Events? Server-sent Events(SSE)是一种 Web 技术,它允许 Web 服务器向客户端推送事件,而无需客户端发起请求。

    6 个月前

相关推荐

    暂无文章