Новые функции ES2021, сколько вы знаете?

внешний интерфейс
作者:天圣
原文链接:https://juejin.cn/post/7011377332359266335

Ключевые слова: es12, новая функция.

** Резюме:** ES2021(ES12)处于流程的第4阶段。ES12已于2021年6月发布,我们来看看计划发布的新功能。

features

  • String.prototype.replaceAll()
  • Promise.any
  • WeakRef
  • &&=, ||= and ??=
  • Numeric separators

Давайте посмотрим на это один за другим:

String.prototype.replaceAll()

Раньше можно было использовать только обычную замену, а теперь можно использовать сразу ярлык replaceAll.

//前
'jxvxscript'.replace(/x/g, 'a');

//后
// jxvxscript becomes javascript
'jxvxscript'.replaceAll('x', 'a');

Promise.any

Promise.any() принимает итерацию объектов Promise, и пока одно из обещаний выполняется успешно, оно возвращает выполненное обещание. Если ни одно из обещаний в итерируемом объекте не выполнено (т. е. все обещания терпят неудачу/отклоняются), вернуть невыполненное обещание.

const promise1 = new Promise((resolve, reject) => reject('我是失败的Promise_1'));
const promise2 = new Promise((resolve, reject) => reject('我是失败的Promise_2'));
const promiseList = [promise1, promise2];
Promise.any(promiseList).then(values=>{  
  console.log(values);
})
.catch(e=>{  
  console.log(e);
});

WeakRefs

Создайте слабую ссылку на объект, используя класс класса WeakRefs.

Logical Assignment Operators

Включите следующие операторы: &&=, ||=, ??=;

a = 1;
b = 2;
a&&=b // a=2

/*
以上代码相当于
a && a = b

??=
作用相当于
a ?? a = b
*/

Числовые разделители — числовые разделители

Число увеличивает разделитель, можно использовать _ для разделения числа, что удобно для чтения больших чисел Для учащихся, которые больше имеют дело с числами, может быть удобнее

// previous syntax before ES12
const number = 92145723;

// new syntax coming with ES12
const number = 92_145_723;
console.log(number) // 92145723

//对国人来说可以这样,万,亿为单位
const number = 1_0000;
console.log(number) // 10000

Chrome великолепен~ Он скоро будет поддерживаться!