JavaScript ECMAScript 2018


Innehållsförteckning

    Visa innehållsförteckning

JavaScript-versionsnummer

Gamla JS-versioner namnges med nummer: ES5 (2009) och ES6 (2015).

Från 2016 är versionerna namngivna efter år: ECMAScript 2016, 2017, 2018, 2019, ...

Nya funktioner i ECMAScript 2018

Det här kapitlet introducerar de nya funktionerna i ECMAScript 2018:

  • Asynkron iteration

  • Lova äntligen

  • Egenskaper för objektvila

  • Nya RegExp-funktioner

  • JavaScript delat minne


JavaScript asynkron iteration

ECMAScript 2018 lade till asynkrona iteratorer och iterables.

Med asynkrona iterables kan vi använda await nyckelord i för/av loopar.

Exempel

for await () {}

JavaScript asynkron iteration stöds i alla moderna webbläsare sedan januari 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 slutför den fullständiga implementeringen av Promise-objektet med Promise.finally:

Exempel

let myPromise = new Promise();

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

Promise.finally stöds i alla moderna webbläsare sedan november 2018:

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


Egenskaper för JavaScript Object Rest

ECMAScript 2018 lade till viloegenskaper.

Detta gör att vi kan förstöra ett föremål och samla resterna på ett nytt föremål:

Exempel

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

Objektviloegenskaper stöds i alla moderna webbläsare sedan januari 2020:

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

Nya JavaScript RegExp-funktioner

ECMAScript 2018 lade till fyra nya RegExp-funktioner:

  • Unicode Property Escapes (\p{...})

  • Lookbehind Assertions (?<= ) och (?

  • Namngivna Capture Groups

  • s (dotAll) Flagga

De nya RegExp-funktionerna stöds i alla moderna webbläsare sedan juni 2020:

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

JavaScript-trådar

I JavaScript använder du Web Workers API för att skapa trådar.

Arbetstrådar används för att exekvera kod i bakgrunden så att huvudprogrammet kan fortsätta körningen.

Arbetartrådar körs samtidigt med huvudprogrammet. Samtidigt utförande av olika delar av ett program kan vara tidsbesparande.

JavaScript delat minne

Delat minne är en funktion som tillåter trådar (olika delar av ett program) att komma åt och uppdatera samma data i samma minne.

Istället för att skicka data mellan trådar kan du skicka ett SharedArrayBuffer-objekt som pekar på minnet där data sparas.

SharedArrayBuffer

Ett SharedArrayBuffer-objekt representerar en rå binär databuffert med fast längd som liknar ArrayBuffer-objektet.