ECMAScript 2020是我们最喜欢的编程语言的第11部分,其中包含一些新功能。有些是小型的,但有些则有可能永远改变我们编写JavaScript的方式。
本文是对这些新功能的简短概述,我们一起看看有哪些新特性。
1、 Dynamic import()
ES2020引入了static import语法。现在您可以从一个模块导出变量,然后将其导入另一个模块。
该语法称为静态语法,因为您无法在运行时动态导入模块(取决于某些条件)。请注意,这不一定是一件坏事:静态导入可以在编译时进行优化,从而允许Tree Shaking。
另一方面,如果合理地使用了动态导入,则可以通过按需加载依赖项来帮助减少分发包的大小。
新dynamic import语法看起来像一个函数(但不是),它返回一个promise,这也意味着我们可以对其使用async / await。
2、 Nullish coalescing
使用短循环设置默认值的流行方法有其缺陷。由于它实际上不是在检查空度,而是在检查虚假性,因此它会破坏像false或的值0(两者均被视为虚假)。
ES2020引入了一个新的运算符??,该运算符的工作原理类似,但仅当初始值为null或时才求右手undefined。
这是一个简单的示例:
我写了一篇有关此功能的详细文章,以及它与设置默认值的其他方法的比较。(https://www.strictmode.io/articles/nullish-coalescing-vs/ )
3、 Optional chaining
新的optional chaining运算符旨在在处理嵌套对象和检查可能的代码时使代码更短undefineds。
4、 BigInt
BigInt是一个新的对象,它代表大于的数字Number.