1.replaceAll

返回一个全新的字符串,所有符合匹配规则的字符都将被替换掉

  1. const str = 'hello world';
  2. const newStr = str.replaceAll('l', ''); // newStr: "heo word"

2.Promise.any

Promise.any() 接收一个Promise可迭代对象,只要其中的一个 promise 成功,就返回那个已经成功的 promise 。如果可迭代对象中没有一个 promise 成功(即所有的 promises 都失败/拒绝),就返回一个失败的 promise。

  1. const promise1 = new Promise((resolve, reject) => reject('我是失败的Promise_1'));
  2. const promise2 = new Promise((resolve, reject) => reject('我是失败的Promise_2'));
  3. const promise3 = new Promise((resolve, reject) => resolve('我是成功的Promise_3'));
  4. const promiseList = [promise1, promise2, promise3];
  5. Promise.any(promiseList)
  6. .then(values=>{
  7. console.log(values);
  8. })
  9. .catch(e=>{
  10. console.log(e);
  11. });

image.png
image.png

3.WeakRefs

使用WeakRefs的Class类创建对对象的弱引用(对对象的弱引用是指当该对象应该被GC回收时不会阻止GC的回收行为)

4.逻辑运算符和赋值表达式

逻辑运算符和赋值表达式,新特性结合了逻辑运算符(&&,||,??)和赋值表达式而JavaScript已存在的 复合赋值运算符有:

  1. let a = 1, b = 2;
  2. let a = false, b = true;
  3. a ||= b
  4. //等价于
  5. a = a || (a = b)
  6. a &&= b
  7. //等价于
  8. a = a && (a = b)
  9. a ??= b
  10. //等价于
  11. a = a ?? (a = b)

5.数字分隔符

数字分隔符,可以在数字之间创建可视化分隔符,通过_下划线来分割数字,使数字更具可读性

  1. const moneyFormat = 1_000_000_000;
  2. //等价于
  3. const moneyOrigin = 1000000000;
  4. 1_000_000_000 === 1000000000; // true

image.png