ECMAScript 2018

JavaScriptin nimeämisperinteet alkavat ES1, ES2, ES3, ES5 ja ES6.

Mutta ECMAScript 2016 ja 2017 eivät ole kutsuttu ES7 ja ES8.

Vuodesta 2016 lähtien uudet versiot on nimetty vuosin (ECMAScript 2016/2017/2018).

ECMAScript 2018:n uudet ominaisuudet

Tämä luku esittelee ECMAScript 2018:n uudet ominaisuudet:

  • asynkroninen iterointi
  • Promise Finally
  • objektin Rest-ominaisuus
  • uudet RegExp-ominaisuudet

JavaScriptin asynkroninen iterointi

ECMAScript 2018 lisäsi asynkronisia iterointivälineitä ja iterointitavoja.

Asynkronisella iteroinnilla voimme for/of toistuvassa silmukassa await avainsana.

Esimerkki

for await () {}

Firefox ja Safari olivat ensimmäiset selaimet, jotka tukivat JavaScriptin asynkronista iterointia:

Chrome ja Firefox ovat ensimmäiset selaimet, jotka tukevat kaikkia uusia RegExp-ominaisuuksia: IE Firefox Safari Opera
Chrome 63 Edge 79 Firefox 57 Safari 11 Opera 50
Joulukuu 2017 Vuosi 2020, kuukausi 1 Marraskuu 2017 Syyskuu 2017 Vuosi 2018, kuukausi 1

JavaScriptin Promise.finally

ECMAScript 2018 käyttää Promise.finally Tämä saavutti Promise-objektin täyden toteutuksen:

Esimerkki

let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();

Chrome ja Firefox ovat ensimmäiset, jotka tukivat Promise.finally selaimet:

Chrome ja Firefox ovat ensimmäiset selaimet, jotka tukevat kaikkia uusia RegExp-ominaisuuksia: IE Firefox Safari Opera
Chrome 63 Edge 18 Firefox 58 Firefox 55 Opera 50
Joulukuu 2017 Marraskuu 2018 Vuosi 2018, kuukausi 1 Vuosi 2017, kuukausi 7 Vuosi 2018, kuukausi 1

JavaScriptin objektin Rest-ominaisuus

ECMAScript 2018 lisäsi Rest-ominaisuuden.

Tämä mahdollistaa objektin hajottamisen ja jäännösten keräämisen uuteen objektiin:

Esimerkki

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

Chrome, Firefox ja Opera ovat ensimmäiset selaimet, jotka tukevat objektin Rest-ominaisuutta:

Chrome ja Firefox ovat ensimmäiset selaimet, jotka tukevat kaikkia uusia RegExp-ominaisuuksia: IE Firefox Safari Opera
Chrome 60 Edge 79 Chrome 60 Firefox 55 Safari 11.1
Opera 47 Vuosi 2020, kuukausi 1 Vuosi 2018, kuukausi 3 Vuosi 2017, kuukausi 7 Vuosi 2018, kuukausi 3

Vuosi 2017, kuukausi 8

Uudet JavaScript RegExp-ominaisuudet

  • ECMAScript 2018 lisäsi 4 uutta RegExp-ominaisuutta:
  • Unicode-ominaisuus-escape (\p{...})
  • Jälkimmäiset väittämät (Lookbehind Assertions) (?<= ) ja (?<! )
  • Nimettyjen ottoparien (Named Capture Groups)

s (dotAll) -merkki

Chrome ja Firefox ovat ensimmäiset selaimet, jotka tukevat kaikkia uusia RegExp-ominaisuuksia: IE Firefox Safari Opera
Chrome 64 Edge 79 Firefox 78 Safari 12 Opera 51
Vuosi 2018, kuukausi 1 Vuosi 2020, kuukausi 1 Vuosi 2020, kuukausi 6 Vuosi 2018, kuukausi 9 Vuosi 2018, kuukausi 2