ES2020 - Что нового.

ES2020 - Что нового.

2021-05-13 | 218 Просмотров

ES2020 — это версия ECMAScript, актуальная для 2020 года. В ней не так много нововведений по сравнению с ES6, вышедшей в 2015 году, но несколько полезных функций все же есть.

И хорошие новости! Новые функции ES2020 - доработаны. А это означает, что теперь у нас есть полное представление об изменениях, происходящих в ES2020 и о новой улучшенной спецификации JavaScript.

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

В этой статье новые фичи ES2020 описываются на простых примерах кода. Вы сможете быстро понять их без каких-либо сложных разъяснений.

Метод String.protype.matchAll

Добавление в прототип объекта String нового метода matchAll

Предназначен для работы с регулярными выражениями. Он возвращает все подходящие группы в строке.

const str = "abc";
const regexp = /[a-c]/g;
const iterator = str.matchAll(regexp);

for (result of iterator) {
console.log(result);
}
// ["a", index: 0, input: "abc", groups: undefined]
// ["b", index: 1, input: "abc", groups: undefined]
// ["c", index: 2, input: "abc", groups: undefined]

BigInt

Появление нового типа данных - BigInt. Это одно из самых ожидаемых нововведений в JavaScript. Он позволяет получить разработчикам большее целочисленное представление в JS коде для обработки данных.

Для того, чтобы создать BigInt число, нам нужно просто добавить к числу букву - n. К примеру: const bn = 3000n Выведем это в консоль и получим 3000n

Стоит отметить, что BigInt нельзя использовать с другими типами данных на прямую. Если мы выведем в консоль console.log(5 + bn) то получим ошибку. Чтобы ошибки не было, необходимо привести тип данных Number к BigInt. Это можно сделать путем оборачивания числа в круглые скобки, вот так: BigInt(7) или если число присвоено переменной const numberSeven = 7, то так BigInt(numberSeven)

Экспорт модуля

Тут все очень просто. Теперь чтобы экспортировать какой-либо файл в корневой, или соседний JS приложения, нужно например прописать команду import {script} scriptю

Promise.allSettled

Функция Promise.all - он выполнялся успешно (resolves) только тогда, когда все переданные промисы были выполнены успешно. И выполнялся с ошибкой (rejects), если хотя бы один из промисов был отклонен, в то время как другие ещё могли быть в статусе ожидания (pending).

Новый allSettled ведет себя иначе. Он выполняется всякий раз, когда все промисы заканчиваются, то есть выполнились успешно или выполнились с ошибкой. Он возвращает массив, который содержит как статус промиса, так и значение (или ошибку).

Таким образом, allSettled никогда не отклоняется. Он либо в состоянии ожидания, либо выполнился успешно.

const promiseArray = [
  Promise.resolve(200),
  Promise.reject(""),
  Promise.reject(new Error("Error")),
];

Promise.allSettled(promiseArray).then((result) => {
  console.log("All Promises Settled", result);
});

// All Promises Settled
// [
//   {status: "fulfilled", value: 200},
//   {status: "rejected", reason: ""},
//   {status: "rejected", reason: Error: Error at :4:18}
// ]

Свойство globalThis

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

globalThis === window; // true

Заключение

Мы расмотрели немного основных нововведений языка JavaScript 2020. Пользуйтесь ими, активно применяйте на практике, оптимизируйте ваши веб-приложения применяя новый стандарт.

Заказать звонок
×