JavaScript: Что нового в ECMAScript 2018 (ES2018)?

JavaScript: Что нового в ECMAScript 2018 (ES2018)?

От автора: на последней встрече TC39 были определены новые функции, которые войдут в “ECMAScript® 2018 Language Specification” (ES2018). Избранными были все предложения, достигшие IV этапа с момента консолидации ES2017. В этой публикации представлен обзор функций ES2018 JavaScript.

IV этап?

Процесс разработки новой функции языка TC39 состоит из 5 этапов, от 0 до 4. IV этап – это завершающие этап. Со списком предложений, дошедших до этапа 4, можно ознакомиться на GitHub.

Свойства Rest/Spread

Во время деструктуризации свойства Rest/Spread позволяют собрать оставшиеся свойства объекта в новый объект. Представьте, что это волшебный магнит, притягивающий все остатки.

JavaScript: Что нового в ECMAScript 2018 (ES2018)?

Лично я использую их довольно часто, особенно в контексте React (Native), я извлекаю определённые значения из this.props для внутреннего пользования, а потом направляю все остальные свойства возвращённому дочернему компоненту.

JavaScript: Что нового в ECMAScript 2018 (ES2018)?

Кроме того, если подумать логически, то свойства Rest/Spread– это хороший способ извлечь свойство из объекта с сохранением стабильности.

Асинхронная итерация

Aсинхронная итерация даёт нам асинхронные итераторы и асинхронные итерируемые. Асинхронные итераторы – это обычные итераторы, только их метод next()возвращает промис для пары { value, done }. Чтобы использовать асинхронные итерируемые, можно воспользоваться ключевым словом await и циклами for … of.

JavaScript: Что нового в ECMAScript 2018 (ES2018)?

Promise.prototype.finally()

Promise.prototype.finally() завершает введение целых промисов и позволяет зарегистрировать обратный вызов, который будет выполнен тогда, когда обещание будет урегулировано (выполнено или отклонено).

Обычно его используют так: прячут спиннер после fetch() запроса: вместо дублирования логики внутри последнего.then() и .catch(), и теперь можно поместить его внутрь .finally()

JavaScript: Что нового в ECMAScript 2018 (ES2018)?

Функции, связанные с регулярными выражениями

В целом, 4 предложения, связанные с RegExp были внесены в ES2018:

Флаг s (dotAll) для регулярных выражений

RegExp именованные группы захвата

RegExp Lookbehind выражения

RegExp Unicode Property Escapes

Я бы выделил функцию “RegExp именованные группы”, потому что она улучшает читаемость:

JavaScript: Что нового в ECMAScript 2018 (ES2018)?

Другие новые функции

Вдобавок ко всему, добавились некоторые изменение в шаблонные литералы: во время использования тэгированных литералов шаблонов были убраны ограничения на управляющие последовательности, но разрешены такие вещи как \xerxes. Перед этим изменением, в таком случае мы бы получали ошибку, потому что \x – это начало запуска hex, а erxes — некорректное шестнадцатеричное управляющее значение.

Тэгированный шаблонный литерал?

Согласно MDN: Если литералу шаблона предшествует выражение, то шаблонная строка называется «тэгированным литералом шаблона». В таком случае, тэгированное выражение (обычно, это функция) вызывается с обработанным литералом шаблона, которым вы можете управлять перед выводом данных.

Что дальше?

Примите во внимание, что ещё не все эти функции поддерживают браузеры. То, что они дошли до этапа 4, значит, что они завершены, и что разработчики браузеров должны их ввести (некоторые уже ввели, другие ещё в процессе).

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

Автор: Bramus

Источник: //www.bram.us/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: