教育改变生活

标题: JS语法ES12(2021)新特性 [打印本页]

作者: 李玮    时间: 2021-4-25 16:43
标题: JS语法ES12(2021)新特性
1. replaceAll
返回一个全新的字符串,所有符合匹配规则的字符都将被替换掉
  1. const str = 'hello world';
  2. str.replaceAll('l', ''); // "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 promiseList = [promise1, promise2];
  4. Promise.any(promiseList)
  5. .then(values=>{
  6.   console.log(values);
  7. })
  8. .catch(e=>{
  9.   console.log(e);
  10. });
复制代码




3. WeakRefs
使用WeakRefs的Class类创建对对象的弱引用(对对象的弱引用是指当该对象应该被GC回收时不会阻止GC的回收行为)
4. 逻辑运算符和赋值表达式
逻辑运算符和赋值表达式,新特性结合了逻辑运算符(&&,||,??)和赋值表达式而JavaScript已存在的 复合赋值运算符有:
  1. a ||= b
  2. //等价于
  3. a = a || (a = b)

  4. a &&= b
  5. //等价于
  6. a = a && (a = b)

  7. a ??= b
  8. //等价于
  9. a = a ?? (a = b)
复制代码


5. 数字分隔符
数字分隔符,可以在数字之间创建可视化分隔符,通过_下划线来分割数字,使数字更具可读性
  1. const money = 1_000_000_000;
  2. //等价于
  3. const money = 1000000000;

  4. 1_000_000_000 === 1000000000; // true
复制代码









欢迎光临 教育改变生活 (http://bbs.goldoar.com/) Powered by Discuz! X3.2