作者:天圣
原文链接: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 великолепен~ Он скоро будет поддерживаться!