​​Новые возможности ECMAscript 2021

Очередное заседание TC39 — комитета разработчиков и теоретиков JavaScript — завершилось опубликованием 3 февраля списком функций ECMAScript 2021. Вот несколько самых интересных нововведений (некоторые из них уже были доступны в разработке через Babel).

1. Promise.any
Метод Promise.any() принимает несколько "обещаний" (Promise). Как только одно из "обещаний" выполнится успешно, метод возвращает единственный объект Promise со значением выполненного "обещания". Если ни одно из "обещаний" не завершится успешно, то возвращенный объект promise будет отклонен. По существу, метод Promise.any() — противоположность для Promise.all().

2. Оператор логического присваивания
Оператор логического присваивания означает, что можно будет использовать комбинацию логических операторов &&, || или ?? с присваиванием = . Присваивание произойдет при выполненном условии.

3. replaceAll()
String.prototype.replaceAll() заменяет все вложенные строки, согласно паттерну, другим строковым значением. В отличие от уже существующего метода replace(), который заменяет только первую найденную часть строки.

4. Приватные поля класса
В ES2021 объявить приватными переменную или метод очень просто, просто нужно поставить # перед именем переменной/метода.

5. WeakRef
Когда мы присваиваем объект переменной, он указывает на часть памяти, где хранится значение этого объекта (сильная ссылка). Если программа больше не ссылается на этот объект, сборщик мусора уничтожает его и освобождает память. Экземпляр WeakRef создает ссылку на заданный объект, которая возвращает его, если он все еще находится в памяти, или undefined, если целевой объект был удален сборщиком мусора.

Полный текст ECMAScript 2021: https://tc39.es/ecma262/
Top 5 Best Zoom Cameras