ECMAScript 2018

JavaScripts navngivningskonventioner begyndte med ES1, ES2, ES3, ES5 og ES6.

Men ECMAScript 2016 og 2017 blev ikke kaldt ES7 og ES8.

Siden 2016 har nye versioner været navngivet efter år (ECMAScript 2016/2017/2018).

Nye funktioner i ECMAScript 2018

Dette kapitel introducerer ECMAScript 2018s nye funktioner:

  • asynkron iteration
  • Promise Finally
  • objekt Rest-attributter
  • nye RegExp-karakteristika

JavaScript asynchronous iteration

ECMAScript 2018 tilføjede asynchronous iterators og iterable objekter.

Gennem asynchronous iteration kan vi for/of i løkker. await nøgleord.

Eksempel

for await () {}

Firefox og Safari er de første browsere, der understøtter JavaScript asynchronous iteration:

Chrome og Firefox var de første browsere, der understøttede alle nye RegExp-funktioner: IE Firefox Safari Opera
Chrome 63 Edge 79 Firefox 57 Safari 11 Opera 50
December 2017 Januar 2020 November 2017 September 2017 Januar 2018

JavaScript Promise.finally

ECMAScript 2018 bruger Promise.finally fulgte den fulde implementering af Promise-objektet:

Eksempel

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

Chrome og Firefox er de første, der understøtter Promise.finally browserne:

Chrome og Firefox var de første browsere, der understøttede alle nye RegExp-funktioner: IE Firefox Safari Opera
Chrome 63 Edge 18 Firefox 58 Firefox 55 Opera 50
December 2017 November 2018 Januar 2018 2017 juli Januar 2018

JavaScript objekt Rest-attributter

ECMAScript 2018 tilføjede Rest-attributter.

Dette muliggør, at vi kan ødelægge et objekt og samle resten i et nyt objekt:

Eksempel

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

Chrome, Firefox og Opera er de første browsere, der understøtter object Rest-attributter:

Chrome og Firefox var de første browsere, der understøttede alle nye RegExp-funktioner: IE Firefox Safari Opera
Chrome 60 Edge 79 Chrome 60 Firefox 55 Safari 11.1
Opera 47 Januar 2020 2018 marts 2017 juli 2018 marts

2017 august

Nye JavaScript RegExp-karakteristika

  • ECMAScript 2018 tilføjede 4 nye RegExp-karakteristika:
  • Unicode-ejenskabsudtryk (\p{...})
  • Bagudlåse (Lookbehind Assertions) (?<= ) og (?<! )
  • Navngivne fanggrupper (Named Capture Groups)

s (dotAll) flag

Chrome og Firefox var de første browsere, der understøttede alle nye RegExp-funktioner: IE Firefox Safari Opera
Chrome 64 Edge 79 Firefox 78 Safari 12 Opera 51
Januar 2018 Januar 2020 Juni 2020 September 2018 Februar 2018