ES2021 api学习了解
1、 replaceAll - 全部替换
replaceAll有点类似replace 较不同的是replace要替换里面全局的的话要使用正则,replaceAll就能快速匹配变量的全局相同的 并进行全局替换
//仅限于字符串数据
"Heaao".replaceAll("a", "L"); // 'HeLLo'
2、逻辑运算符与赋值表达式
a ||= b; 同义于 a=a||b 或 if(!a)a=b
a &&= b; 同义于 a=a&&b 或 if(a)a=b
a ??= b; 同义于 a=a??b 或 if(a===undefined||a===null)a=b
逻辑运算符跟赋值的简写
3、_ 数值分隔符
// 原写法
let num = 10000000000;
// 新写法 - 可读性发生了变化
let billion = 10_000_000_000;
//在浏览器中我们也可以试着
10000000000===10_000_000_000 //true
新增的写法主要体现在可读性上!
拓展:“Promise.any Promise 的短路返回”
1. 这是 Promise 全局对象的静态方法,可以放 Promise 数组,只要有一个 Promise 完成解析,就短路返回一个值。如果所有的 promise 都被拒绝,那么它将抛出一个汇总错误消息)。
2. 该特性基本和原有的 Promise.all 功能相反。
Promise.any([
new Promise((resolve, reject) => setTimeout(reject, 200, "Third")),
new Promise((resolve, reject) => setTimeout(resolve, 1000, "Second")),
new Promise((resolve, reject) => setTimeout(resolve, 2000, "First")),
])
.then((value) => console.log(Result: ${value}))
.catch((err) => console.log(err));
/**** Output ****/
// Result: Second
"WeakRef 弱引用"--这是一个新类,用于创建对对象的弱引用,即不会阻止被引用对象被垃圾收集的引用,Java 中有类似的实现。
let obj = { name: "Andy" };
const myRef = new WeakRef(obj);
//简写
myRef.deref(); // { name: "Andy" }
//如果垃圾收集器已经将其从内存中删除,它将返回 undefined。