Прикольные новости - мы доработали возможности ES2020!

ES2020 - это версия ECMAScript, соответствующая 2020 году. Эта версия не включает столько новых функций, сколько появилось в ES6 (2015).

Итак, давайте посмотрим, какие у нас есть изменения.

BigInt

BigInt позволяет разработчикам использовать в коде гораздо большие целые числа для представления данных.

На данный момент максимальное безопасное целое число в JavaScript - pow(2, 53) - 1. Но BigInt на самом деле позволяет нам пойти даже дальше.

Однако нам нужно добавить n в самом конце числа, как мы видим выше. Это n показывает, что это BigInt и механизм JavaScript должен обрабатывать его иначе.

Итак, у нас есть новый тип данных bigint, который представляет большие целые числа.

Нулевое слияние

В JavaScript много значений falsey, например, пустые строки, число 0, undefined, null, false, NaN и т. Д.

Однако во многих ситуациях мы хотим проверить, является ли значение нулевым или нет. Под нулевыми значениями мы понимаем два значения - null и undefined.

Появился новый оператор проверки нулевых значений - ??

Мы видим, что с тернарным условным оператором все значения слева представлены как falsey значений. Но с нулевым оператором нулевыми значениями будут null и undefined.

Динамический импорт

Динамический импорт в JavaScript дает вам возможность динамически импортировать файлы JS как модули в вашем приложении. Это похоже на то, как вы делаете это сейчас с Webpack и Babel.

Эта функция поможет вам поставлять код по запросу, более известный как разделение кода, без дополнительных затрат на веб-пакет или другие сборщики модулей. Вы также можете условно загрузить код в блок if-else, если хотите.

Хорошо то, что вы фактически импортируете модуль, и поэтому он никогда не загрязняет глобальное пространство имен.

После создания и экспорта нашего модуля мы можем динамически импортировать его в index.js и использовать, когда захотим.

Необязательная цепочка

Когда я встретил эту опцию в React.js, я подумал, как упростить запись условий, когда в моем приложении много вызовов API и динамически изменяющиеся данные.

Итак, давайте подумаем, что у нас есть объект для будущего использования.

Мы используем их, записывая имена ее сына вот так.

Но что, если мы получим подобъект son через некоторое время после регистрации. Когда мы пытаемся зарегистрировать их имена до того, как получим подобъект son, представляющий их имена, мы получим ошибку.

Ситуация будет выглядеть так.

Необязательная цепочка может помочь нам обработать эту ошибку и выдать undefined вместо ошибки. Мы можем сделать это, если поместим необязательный оператор цепочки перед ключами объекта конфликта.

Круто, правда? После установки операторов код больше не вылетает. Блок условий будет просто проигнорирован.

Promise.allSettled () метод

В отличие от Promise.all () этот метод возвращает обещание, которое разрешается после того, как все заданные обещания были либо разрешены, либо отклонены с помощью массива объектов каждое из которых описывает результат каждого обещания.

Для каждого объекта результата присутствует строка состояния.

Если статус выполнен, значит, значение присутствует.

Если статус отклонен, значит, имеется причина. Значение (или причина) отражает, с каким значением каждое обещание было выполнено (или отклонено).

globalThis

В сети вы можете использовать window, self или frames, но в Web Workers будет работать только self. В Node.js ничего из этого не работает, и вместо этого вы должны использовать global. Ключевое слово this может использоваться внутри функций, работающих в нестрогом режиме, но this будет undefined в модулях и внутри функций, работающих в строгом режиме.

globalThis всегда относится к глобальному объекту, независимо от того, где вы выполняете свой код.

matchAll () метод регулярного выражения

Метод matchAll () возвращает итератор всех результатов, соответствующих строке и регулярному выражению, включая захватывающие группы.

Наше регулярное выражение (regex) выполняет поиск совпадений букв a, n, и t во входной строке (testString). После обертывания результата в массив мы можем увидеть все совпадения.

Это основные функции ES2020, которые доступны в большинстве браузеров, и вы можете поэкспериментировать с ними.

Спасибо за чтение! До скорой встречи 🤘