ECMAScript 2020
JavaScript versienummer
Oude JS-versies worden genaamd naar nummer: ES5 (2009) en ES6 (2015).
Sinds 2016 worden versies genaamd naar jaar: ECMAScript 2016, 2017, 2018, 2019, ...
Nieuwe kenmerken in ES2020:
- BigInt
- String methode matchAll()
- Merge operator (??)
- Optionele ketteloperator (?.)
- Logisch AND assignatieoperator (&&=)
- Logisch OR assignatieoperator (||=)
- Merge assignment operator (??=)
- Promise.allSettled()
- Dynamische import
Waarschuwing
Deze kenmerken zijn relatief nieuw.
Oudere browsers kunnen een alternatieve code (Polyfill) nodig hebben.
JavaScript BigInt
JavaScript BigInt-variabelen worden gebruikt om heel getallen op te slaan die te groot zijn om met gewone JavaScript-getallen te representeren.
JavaScript gehele getallen kunnen maximaal 15 cijfers nauwkeurig zijn.
Integer instantie
let x = 999999999999999; let y = 9999999999999999; // Te groot
BigInt instantie
let x = 9999999999999999; let y = 9999999999999999n;
Om BigInt te maken, voeg n
voeg toe aan het einde van een heel getal of roep BigInt() aan:
Voorbeeld
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
De JavaScript-typ van BigInt is "bigint":
Voorbeeld
let x = BigInt(999999999999999); let type = typeof x;
Sinds september 2020 ondersteunen alle moderne browsers BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
Mei 2018 | Januari 2020 | Juli 2019 | September 2020 | Juni 2018 |
JavaScript String Methode matchAll()
Voor ES2020 was er geen stringmethode beschikbaar om alle optredens van een string in een andere string te zoeken.
Voorbeeld
const iterator = text.matchAll("Cats");
Als het argument een reguliere expressie is, moet je het globale kenmerk instellen (g
) anders wordt een TypeError gegooid.
Voorbeeld
const iterator = text.matchAll(/Cats/g);
Als je een niet-gematigde zoekopdracht wilt uitvoeren, moet je het niet-gematigde schrijfkenmerk instellen (i
):
Voorbeeld
const iterator = text.matchAll(/Cats/gi);
Tip:ES2021 De stringmethode replaceAll() is geïntroduceerd.
Lege waarde samenvoeging operator (Nullish Coalescing Operator) (?? operator)
als de eerste parameter geen lege waarde is (null
of undefined
dan ??
De operator retourneert de eerste parameter.
anders retourneert de tweede.
Voorbeeld
let name = null; let text = "missing"; let result = name ?? text;
Sinds maart 2020 ondersteunen alle moderne browsers de nullish operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Februari 2020 | Februari 2020 | Januari 2020 | Maart 2020 | Maart 2020 |
Optionele ketteling operator (Optional Chaining Operator) (?. operator)
als het object undefined
of null
danOptionele ketteling operatorRetourneert undefined
(in plaats van een fout te gooien).
Voorbeeld
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
Sinds maart 2020 ondersteunen alle moderne browsers dit: ?.=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
Februari 2020 | Februari 2020 | Maart 2020 | Maart 2020 | Maart 2020 |
Logisch AND Toewijzingsoperator (&&= Operator)
Logische AND toewijzing operatortussen twee waarden.
als de eerste waarde true
wordt de tweede waarde toegewezen.
Logische AND toewijzing voorbeeld
let x = 100; x &&= 5;
Sinds september 2020 ondersteunen alle moderne browsers dit. &&=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Augustus 2020 | Augustus 2020 | Maart 2020 | September 2020 | September 2020 |
Logische OR toewijzing operator (||= operator)
Logische OR toewijzing operatortussen twee waarden.
als de eerste waarde false
wordt de tweede waarde toegewezen.
Logische OR toewijzing voorbeeld
let x = 10; x ||= 5;
Sinds september 2020 ondersteunen alle moderne browsers dit. ||=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Augustus 2020 | Augustus 2020 | Maart 2020 | September 2020 | September 2020 |
Nullwaarde Samenvoegings Toewijzingsoperator (??= Operator)
Nullwaarde Samenvoegings Toewijzingsoperator(Nullish Coalescing Assignment Operator) wordt gebruikt tussen twee waarden.
als de eerste waarde undefined
of null
wordt de tweede waarde toegewezen.
Voorbeeld van Nullwaarde Samenvoegings Toewijzingsoperator
let x = 10; x ??= 5;
Sinds september 2020 ondersteunen alle moderne browsers dit. ??=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Augustus 2020 | Augustus 2020 | Maart 2020 | September 2020 | September 2020 |