ES2020 学习笔记
1. babel 环境配置
babel 版本在7.8以上,babel-cli 8以上均支持es2020中的语法,具体可参照本项目的webpack配置
2. es2020 中值得关注的点
对象定义中的私有变量
当我们创建一个类的时候,该类会在各个场景下被使用,可能我们并不希望每一个内部的参数都被全局共享,因此在方法或者变量前添加#,使得该方法或者类名只在类内部可用
class Person {
#type = "man";
constructor(name) {
this.name = name;
}
showType() {
console.log(`${
this.name} is ${
this.#type}`);
}
}
const jack = new Person("Jack");
jack.showType(); // Jack is man
jack.#type // Error: #type is private value
在外部调用私有变量的话就会报错
使用方法:在类内部属性或者变量前加入#号,使得变量变为私有变量
Promise.allSettled
当我们使用多 promise 的时候,特别是当每个 promise 之间存在以来关系的时候,记录每个 Promise 的返回值对错误调试而言是很重要的。使用 Promise.allSettled,创造了一种新的 promise,通过该 promise 所有传入的 promise 全部完成后会返回一个数组,该数组中包含了每一个 promise 的返回值和状态
const promise1 = new Promise((resolve, reject) =>
setTimeout(()