web design
April 23, 2018

Новый функционал следующей версии JS – ES2018

Как вы знаете, новую версия экмаскрипта (спецификации JS) планируют выпускать каждый год, так что каждый раз будем смотреть, что новенького нам пришло.

Асинхронные итераторы

Раньше нельзя было использовать синтаксис цикла для прохода по итератору. Все решалось в основном через Promise. Теперь можно писать код с асинхронныим циклами:

async function f() {
    for await (const x of createAsyncIterable(['a', 'b'])) {
        console.log(x);
    }
}

Свойства Rest/Spread для объектов

Синтаксис “трех точек” уже давно вовсю используется для массивов. С того же времени все говорили о том, что хорошо бы такое же сделть и для объектов. И вот пришло время:

const obj = {foo: 1, bar: 2, baz: 3};
const {foo, ...rest} = obj;

RegExp именные группы выборки

Результат поиска регулярными выражениями всегда был массив. Теперь можно дать имена группам и использовать более очевидный синтаксис:

const RE_DATE = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2})/;
 
const matchObj = RE_DATE.exec('1999-12-31');
const year = matchObj.groups.year; // 1999
const month = matchObj.groups.month; // 12
const day = matchObj.groups.day; // 31

Promise.prototype.finally()

Метод вызывается, когда Promise вернулось с любым результатом, и после того как отработали основные методы (then(), catch())

promise
.then(result => {···})
.catch(error => {···})
.finally(() => {···});

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

Ссылки по теме:


Подписывайся на канал - развивайся, вдохновляйся, делай вещи!