ECMAScript 2018
Конвенции命名ования JavaScript начались с ES1, ES2, ES3, ES5 и ES6.
Но ECMAScript 2016 и 2017 не называют ES7 и ES8.
с 2016 года новые версии называют по годам (ECMAScript 2016/2017/2018).
новые возможности ECMAScript 2018
Эта глава знакомит с новыми возможностями ECMAScript 2018:
- Асинхронная итерация
- Promise Finally
- объектные Rest свойства
- новые возможности RegExp
Асинхронная итерация JavaScript
ECMAScript 2018 добавил асинхронные итераторы и итерируемые объекты.
с помощью асинхронной итерации мы можем for/of
в цикле await
ключевое слово.
Пример
for await () {}
Firefox и Safari стали первыми браузерами, поддерживающими асинхронную итерацию JavaScript:
Chrome и Firefox стали первыми браузерами, поддерживающими все новые функции RegExp: | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
декабрь 2017 года | Январь 2020 года | ноябрь 2017 года | сентябрь 2017 года | Январь 2018 года |
JavaScript Promise.finally
ECMAScript 2018 использует Promise.finally
полностью реализованы объекты Promise:
Пример
let myPromise = new Promise(); myPromise.then(); myPromise.catch(); myPromise.finally();
Chrome и Firefox стали первыми, кто поддерживает: Promise.finally
браузеры:
Chrome и Firefox стали первыми браузерами, поддерживающими все новые функции RegExp: | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 63 | Edge 18 | Firefox 58 | Firefox 55 | Opera 50 |
декабрь 2017 года | ноябрь 2018 года | Январь 2018 года | Июль 2017 года | Январь 2018 года |
Rest свойства объектов JavaScript
ECMAScript 2018 добавил Rest свойства.
Это позволяет нам разрушить объект и собрать оставшиеся элементы в новый объект:
Пример
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; x; // 1 y; // 2 z; // { a: 3, b: 4 }
Chrome, Firefox и Opera стали первыми браузерами, поддерживающими объектные Rest свойства:
Chrome и Firefox стали первыми браузерами, поддерживающими все новые функции RegExp: | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 60 | Edge 79 | Chrome 60 | Firefox 55 | Safari 11.1 |
Opera 47 | Январь 2020 года | Март 2018 года | Июль 2017 года | Март 2018 года |
Август 2017 года
Новые функции JavaScript RegExp
- ECMAScript 2018 добавил 4 новые функции RegExp:
- Утешил Unicode свойства (\p{...})
- Задние положительныеassertions (?<= ) и (?<! )
- Именованные группы захвата (Named Capture Groups)
символ (dotAll)
Chrome и Firefox стали первыми браузерами, поддерживающими все новые функции RegExp: | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Январь 2018 года | Январь 2020 года | Июнь 2020 года | Сентябрь 2018 года | Февраль 2018 года |