Спецификация ECMAScript 2021 для JavaScript приближается к финишу
Предложение для следующей версии официальной спецификации JavaScript вводит усовершенствования в строки, промисы и ссылки на объекты.
Спецификация находится под юрисдикцией ECMA International. ECMAScript 2021, который, как ожидается, будет официально утвержден в июне, будет включать в себя следующие функции:
String.prototype.ReplaceAll
, предоставляя разработчикам возможность заменить все экземпляры подстроки в строке без использования глобального регулярного выражения. Наиболее распространенным способом достижения этой цели на данный момент является использование глобального регулярного выражение. Между темString.prototype.replace
влияет только на первое вхождение при использовании со строковым аргументом. Предлагаемое решение добавило бы методreplaceAll
к прототипуString
, предоставив разработчикам простое решение.AggregateError
, новый тип ошибки, представляющий сразу несколько ошибок.Promise.any
, комбинатор промисов, который замыкается при выполнении входного значения.Promise.any
принимает итерацию промисов и возвращает один, которое резолвится со значением этого обещания. Если промисы итерируемого объекта не выполняются, то промис возвращается сAggregateError
. Этот метод противоположен Promise.all.WeakRef
для ссылки на целевой объект без защиты его от сборки мусора. Это предложение включает в себя основные новые функциональные возможности: создание слабых ссылок на объекты с помощью классаWeakRefcode
и запуск определяемых пользователем финализаторов после сборки мусора с использованием классаFinalizationRegistry
.WeakRef
иFinalizationRegistry
, еще одна новая функция, считаются расширенными функциями, и их правильное использование требует тщательного обдумывания. По возможности их лучше избегать.FinalizationRegistry
, чтобы управлять регистрацией и отменой регистрации операций очистки, выполняемых, когда целевые объекты собираются сборщиком мусора.Array.prototype.sort
стал более точным, чтобы уменьшить количество случаев, приводящих к порядку сортировки, определяемому реализацией.- Разделители для числовых литералов, позволяющие разработчикам сделать числовые литералы более удобочитаемыми, создавая визуальное разделение между группами цифр. Большие числовые литералы трудно анализировать визуально, особенно при повторении длинных цифр.
- Операторы логического присваивания, объединяющие логические операторы и выражения присваивания. В основе этого предложения лежит довод о том, что существует дюжина математических операторов присваивания, но ни одного для часто используемых логических операторов.
ECMAScript 2021 следует за ECMAScript 2020, который был официально одобрен в июне прошлого года. ECMAScript 2020 представил функции, начиная от нового средства импорта для загрузки модулей и заканчивая типом BigInt для работы с целыми числами произвольной точности. Более подробно об функция ECMAScript 2020 можно почитать в статье «10 новых функций ES2020, которые вы должны знать«