Перейти к основному содержимому

5 записей с тегом "ES2021"

Посмотреть все теги

Логические присваивания

· 4 мин. чтения
Шу-Ю Го ([@_shu](https://twitter.com/_shu))

JavaScript поддерживает ряд операторов составного присваивания, которые позволяют программистам лаконично выражать бинарную операцию вместе с присваиванием. На данный момент поддерживаются только математические или побитовые операции.

`String.prototype.replaceAll`

· 4 мин. чтения
Матиас Байненс ([@mathias](https://twitter.com/mathias))

Если вы когда-либо работали со строками в JavaScript, то, скорее всего, сталкивались с методом String#replace. String.prototype.replace(searchValue, replacement) возвращает строку с некоторыми заменёнными совпадениями в зависимости от указанных параметров:

Слабые ссылки и финализаторы

· 9 мин. чтения
Сатья Гунасекаран ([@_gsathya](https://twitter.com/_gsathya)), Матиас Биненс ([@mathias](https://twitter.com/mathias)), Шу-ю Го ([@_shu](https://twitter.com/_shu)) и Лешек Свирски ([@leszekswirski](https://twitter.com/leszekswirski))

В общем случае ссылки на объекты в JavaScript являются сильно удерживаемыми, что означает, что пока у вас есть ссылка на объект, он не будет удален сборщиком мусора.

const ref = { x: 42, y: 51 };
// Пока у вас есть доступ к `ref` (или любой другой ссылке на
// тот же объект), объект не будет удален сборщиком мусора.

На данный момент WeakMap и WeakSet являются единственными способами частично слабой ссылки на объект в JavaScript: добавление объекта в качестве ключа в WeakMap или WeakSet не предотвращает его удаление сборщиком мусора.

const wm = new WeakMap();
{
const ref = {};
const metaData = 'foo';
wm.set(ref, metaData);
wm.get(ref);
// → metaData
}
// У нас больше нет ссылки на `ref` в этой области видимости блока, поэтому он
// может быть удален сборщиком мусора, даже если он является ключом в `wm`, к
// которому у нас все еще есть доступ.

Комбинаторы Promise

· 4 мин. чтения
Маттиас Биненс ([@mathias](https://twitter.com/mathias))

С момента появления промисов в ES2015 JavaScript поддерживал ровно два комбинатора promise: статические методы Promise.all и Promise.race.

Два новых предложения в настоящее время проходят процесс стандартизации: Promise.allSettled и Promise.any. С этими дополнениями в JavaScript будут доступны четыре комбинатора promise, каждый из которых позволяет решать свои задачи.

Разделители цифр

· 2 мин. чтения
Маттиас Байненс ([@mathias](https://twitter.com/mathias))

Большие числовые литералы трудно быстро воспринимать человеческим глазом, особенно когда много повторяющихся цифр:

1000000000000
1019436871.42

Для улучшения читаемости новая языковая возможность JavaScript позволяет использовать подчеркивания в качестве разделителей в числовых литералах. Таким образом, приведенный выше пример можно переписать, группируя цифры по тысячам, например: