ES2020 JavaScript 功能
新的 ES2020 功能现已完成,这意味着我们现在对 ES2020(新的和改进的 JavaScript 规范)将要发生的变化有了完整的了解。
现在是学习ES2020的最佳时机!
这篇文章我将和大家一起了解ES2020的10个新特性。

BigInt
JavaScript 中最令人期待的功能之一终于出现了。它实际上允许开发人员在 JS 代码中使用更大的整数表示进行计算。
目前 JavaScript 中可以存储为整数的最大数字是 pow(2.53) – 1。但是 BigInt 可以让你做更多。

但是,您必须在数字末尾添加 n,如上所示。 n 表示这是一个 BigInt,JavaScript 引擎(v8 引擎或它使用的任何引擎)应该以不同的方式对待它。
此增强功能不向后兼容,因为传统编号系统是 IEEE754(不支持此大小的数字)。
动态导入
JavaScript 中的动态导入使您能够将 JS 文件作为模块动态导入到您的应用程序中。这与您现在使用 Webpack 和 Babel 所做的完全相同。
此功能可帮助您发布按需代码,而无需 webpack 或其他模块绑定,也称为代码共享。如果需要,您还可以有条件地加载 if-else 块中的代码。
优点是您实际上导入了一个模块,因此它不会污染全局命名空间。

无效合并
空合并增加了实际检查空值而不是错误值的能力。你可能会问,null 和 falsey 有什么区别?
在 JavaScript 中,很多值都是 false,比如空字符串、数字 0、undefined、null、false、NaN 等。
但很多时候您可能想要检查变量是否为空 - 也就是说,它是否未定义或为空,例如当变量可以有空字符串甚至假值时。
在这种情况下,您想使用新的空合并运算符??

您可以清楚地看到如何||运算符始终返回实值以及 null 运算符如何返回非空值。
可选链条样式
可选的链语法允许您访问深度嵌套的对象属性,而不必担心该属性是否存在。如果不存在,则返回undefined。
这不仅适用于对象属性,还适用于函数调用和数组。超级实用!这是一个例子:

承诺.一切已解决
Promise.allsettle 方法接受一系列 Promise,并且仅当所有 Promise 都得到解决(解决或拒绝)时才解决。
这在之前是不可用的,尽管一些严格的实现(例如race和all)可用。这给 JavaScript 带来了“只运行所有的 Promise——我不关心结果”的特性。

字符串#matchAll
matchAll 是在与正则表达式相关的字符串原型中添加的新方法。这将返回一个迭代器,它将按顺序返回所有匹配的组。让我们看一个简单的例子:

全球这个
如果您正在编写可以在 Node 上运行、在浏览器环境中运行或在 Web Worker 中运行的跨平台 JS 代码,那么您将很难掌握全局对象。
这是因为浏览器有窗口,节点有全局,网络工作者有 self。如果有多个运行时,它们的全局对象将会不同。
因此,您必须拥有自己的实现来检测运行时,然后使用正确的全局变量 - 也就是说,到目前为止。
ES2020 为我们提供了 globalThis,无论您在何处运行代码,它始终引用全局对象:
模块名称导出
在 JavaScript 模块中,以下语法已经可用:
import * as utils from './utils.mjs'
但到目前为止还不存在对称派生语法:
export * as utils from './utils.mjs'
这对应于以下内容:
import * as utils from './utils.mjs'
export { utils }
按顺序
ECMA 规范没有指定 for(x in y) 的运行顺序。尽管浏览器之前自己实现了一致性排序,但在 ES2020 中正式标准化。
导入.meta
Import.meta 对象由 ECMAScript 实现创建,并具有一个空原型。
考虑模块 module.js:
<script type="module" src="module.js"></script>
您可以使用 import.meta 对象访问有关模块的元信息:
console.log(import.meta); // { url: "file:///home/user/module.js" }
它返回一个带有 url 属性的对象,该属性指示模块的基本 URL。这将是从中检索脚本的 URL(对于外部脚本),或包含文档的文档基 URL(对于嵌入式脚本)。
结论
JavaScript发展如此之快,大家要更加努力,奥利! ! !
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。