JavaScript ECMAScript 2018


Оглавление

    Показать оглавление

Номера версий JavaScript

Старые версии JS названы номерами: ES5 (2009) и ES6 (2015).

С 2016 года версии именуются по годам: ECMAScript 2016, 2017, 2018, 2019,...

Новые возможности ECMAScript 2018

В этой главе представлены новые функции ECMAScript 2018:

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

  • Обещай наконец

  • Свойства остатка объекта

  • Новые возможности регулярных выражений

  • Общая память JavaScript


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

В ECMAScript 2018 добавлены асинхронные итераторы и итераторы.

При асинхронных итерациях мы можем использовать await. ключевое слово в циклах for/of.

Пример

for await () {}

Асинхронная итерация JavaScript поддерживается во всех современных браузерах с января 2020 года:

Chrome 63 Edge 79 Firefox 57 Safari 11 Opera 50
Dec 2017 Jan 2020 Nov 2017 Sep 2017 Jan 2018

JavaScript Promise.finally

ECMAScript 2018 завершает полную реализацию объекта Promise с помощью Promise.finally:

Пример

let myPromise = new Promise();

myPromise.then();
myPromise.catch();
myPromise.finally();

Promise.finally поддерживается во всех современных браузерах с ноября 2018 г.:

Chrome 63 Edge 18 Firefox 58 Safari 11.1 Opera 50
Dec 2017 Nov 2018 Jan 2018 Mar 2018 Jan 2018


Остаточные свойства объекта JavaScript

В ECMAScript 2018 добавлены остальные свойства.

Это позволяет нам разрушить объект и собрать остатки в новый объект:

Пример

let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }

Остальные свойства объекта поддерживаются во всех современных браузерах с января 2020 года:

Chrome 60 Edge 79 Firefox 55 Safari 11.1 Opera 47
Jul 2017 Jan 2020 Aug 2017 Mar 2018 Aug 2017

Новые возможности JavaScript RegExp

В ECMAScript 2018 добавлены 4 новые функции RegExp:

  • Экранирование свойств Юникода (\p{...})

  • Утверждения просмотра позади (?<=) и (?

  • Именованные группы захвата

  • s (dotAll) Флаг

Новые функции RegExp поддерживаются во всех современных браузерах с июня 2020 года:

Chrome 64 Edge 79 Firefox 78 Safari 12 Opera 51
Jan 2018 Jan 2020 Jun 2020 Sep 2018 Feb 2018

JavaScript-потоки

В JavaScript вы используете API Web Workers для создания потоков.

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

Рабочие потоки выполняются одновременно с основной программой. Одновременное выполнение разных частей программы может сэкономить время.

Общая память JavaScript

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

Вместо передачи данных между потоками вы можете передать объект SharedArrayBuffer. это указывает на память, в которой сохраняются данные.

Общиймассивбуфер

Объект SharedArrayBuffer представляет собой буфер необработанных двоичных данных фиксированной длины, аналогичный объекту ArrayBuffer.