ES11--2020年JavaScript的新特性

2020-09-24  本文已影响0人  MrVoyz

2020年发布了新版本的EcmaScript,出现了许多新的特性,本文将逐一讨论这些新特性的用法

BigInt

之前JavaScript中Int类型整数的最大代表值为 9007199254740991, ES11加入了BigInt类型后可以超过这个值。

BigInt

动态导入

现在我们可以通过变量来动态的import模块, 接收模块的变量可以全局包含这些模块的命名空间。

let _module;

if ("option1") _module = await import('./module1.js');
else _module = await import('./module2.js');

模块导出

新的模块导出语法, 类似于之前的导入语法

// Added in ES11
export * as MyComponent from './Example.js'

// Existing
import * as MyComponent from './Example.js'

可选链(Optional Chaining)

现在JavaScript原生支持可选链调用的语法。

const user = {
  "name": "Aryclenio Barros",
  "age": 22,
  "alive": true,
  "address": {
    "street": "Hyrule street",
    "number": 24,
  }
}

// Without optional chaining
const number = user.address && user.address.number

// With optional chaining
const number = user.address?.number

null或操作符

新增加了 ?? 运算符, 与 || 不同的是,??只允许变量与undefinednull进行或运算

Jietu20200924-191802.png Jietu20200924-191821.png

Promise.AllSettled

Promise对象新增了AllSettled属性,允许传入条件语句来监听数组中所有的promise是否已经都已被resolve

const myArrayOfPromises = [
    Promise.resolve(myPromise),
    Promise.reject(0),
    Promise.resolve(anotherPromise)
]

Promise.AllSettled(myArrayOfPromises).then ((result) => {
   // Do your stuff
})

matchAll

matchAll方法相对于match方法返回更多的正则匹配的参数

22344.png
上一篇 下一篇

猜你喜欢

热点阅读