快来了解 JS 新特性 ES2020, 2021

阅读时长 5 分钟读完

JavaScript 是一门始于 1995 年的编程语言,如今已成为世界上最流行的编程语言之一,其广泛应用于前端开发、后端开发、移动开发、游戏开发等领域。每年,JavaScript 都会有新特性推出,ES2020 和 ES2021 是 JavaScript 中较新的版本,我们可以看看其中的新特性有哪些。

ES2020 新特性

Nullish 合并运算符(Nullish Coalescing Operator)

以前使用 || 运算符时,会出现一些意外情况。当值为 false, null, undefined, '' 时,|| 运算符看起来像是抛出左手边的值。但实际上值只是假的。这意味着可能也测试为 false , null, 或 undefined 值的某个合法的值被抛弃了。

使用 Nullish 合并运算符 ?? 可以解决这个问题:

可选链操作符(Optional Chaining Operator)

在访问一个深层次嵌套的对象属性时,需要使用 && 运算符进行判断,以避免出现 undefined 或 null:

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

使用可选链操作符 ?.,可以写出更加简洁明了的代码:

Promise.allSettled()

Promise.all() 会在全部 promise 都完成或者有某个 promise 被 reject 的时后执行。而Promise.allSettled() 方法将在所有 promise 都结束时执行:

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

其他特性

此外,ES2020 还有一些其他的特性,比如: import() 动态导入、BigInt(安全的整数)类型、String 的 matchAll 方法等等。

ES2021 新特性

Promise.any()

Promise.any() 是 Promise.race() 的升级版。Promise.race() 只要有一个 Promise 状态改变就是返回,但 Promise.any() 则是只要其中有一个 Promise 的初始或者变化被解决,就返回该 Promise 的值或者原因。

String.prototype.replaceAll()

ES2021 中,我们可以使用 String.prototype.replaceAll() 方法代替 String.prototype.replace() 方法。

其他特性

除了 Promise.any() 以及 String.prototype.replaceAll() 外,ES2021 中还有一些重要的特性:

  • WeakRefs,一种安全的内存引用。
  • Logical Assignment Operators,逻辑赋值操作符。
  • 数字分隔符,使得数字更易读写。

总结

ES2020 和 ES2021 将 JavaScript 的基础语言进行了完善和拓展,增加了新的特性,让 JavaScript 的语言功能更加完整,更方便地进行编程。前端开发人员可以通过学习这些新特性,提高自己的编程技能,写出更加高效、简洁、易读的代码。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6481ae9e48841e989412b55d

纠错
反馈