ECMAScript 2020
JavaScript-versionnummer
Gamle JS-versioner er navngivet efter numre: ES5 (2009) og ES6 (2015).
Fra 2016 har versioner været navngivet efter år: ECMAScript 2016, 2017, 2018, 2019, ...
Nye funktioner i ES2020:
- BigInt
- String-metode matchAll()
- Null-worth coalescing operator (??)
- Optional chaining operator (?.)
- Logisk AND assignment operator (&&=)
- Logisk OR assignment operator (||=)
- Null-worth coalescing assignment operator (??=)
- Promise.allSettled()
- Dynamisk import
Advarsel
Disse funktioner er relativt nye.
Ældre browsere kan kræve erstatningskode (Polyfill).
JavaScript BigInt
JavaScript BigInt-variabler bruges til at gemme store heltalsværdier, der er for store til at kunne representeres med almindelige JavaScript-tal.
JavaScript-integers kan maksimalt være præcise til 15 cifre.
Integer-instans
let x = 999999999999999; let y = 9999999999999999; // For stor
BigInt-instans
let x = 9999999999999999; let y = 9999999999999999n;
For at oprette BigInt, skal du sætte n
Tilføj til整数ens ende eller kald BigInt():
eksempel
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
BigInt's JavaScript-type er "bigint":
eksempel
let x = BigInt(999999999999999); let type = typeof x;
Siden september 2020 har alle moderne browsere understøttet BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
maj 2018 | januar 2020 | juli 2019 | September 2020 | juni 2018 |
JavaScript string-metode matchAll()
Før ES2020 var der ingen stringmetoder tilgængelige til at søge efter alle forekomster af en streng i en streng.
eksempel
const iterator = text.matchAll("Cats");
Hvis parameteren er en regulær udtryk, skal du sætte det globale flag (g
) ellers vil det kaste en TypeError.
eksempel
const iterator = text.matchAll(/Cats/g);
Hvis du vil udføre en søgning uden at tage højde for store og små bogstaver, skal du sætte flaget uden at tage højde for store og små bogstaver (i
):
eksempel
const iterator = text.matchAll(/Cats/gi);
Advarsel:ES2021 introducerede stringmetoden replaceAll().
Tom værdi sammenfaldningsoperator (Tom værdi sammenfaldningsoperator (?? operator))
hvis den første parameter ikke er en tom værdi (null
eller undefined
så ??
operatoren returnerer den første parameter.
ellers returnerer den anden.
eksempel
let name = null; let text = "missing"; let result = name ?? text;
Siden marts 2020 har alle moderne browsere understøttet nullish operatorer:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
februar 2020 | februar 2020 | januar 2020 | Marts 2020 | Marts 2020 |
valgfri kædeoperator (Valgfri Kædeoperator (?. operator))
hvis objektet er undefined
eller null
såvalgfri kædeoperatorreturnerer undefined
i stedet for at kaste en fejl).
eksempel
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
Siden marts 2020 har alle moderne browsere understøttet ?.=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
februar 2020 | februar 2020 | Marts 2020 | Marts 2020 | Marts 2020 |
Logisk AND tildeling operator (&&= operator)
Logisk AND tildelingoperatorbrugt mellem to værdier.
hvis den første værdien er true
og tildel den anden værdi.
Logisk AND tildelingseksempel
let x = 100; x &&= 5;
Siden september 2020 har alle moderne browsere understøttet &&=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
August 2020 | August 2020 | Marts 2020 | September 2020 | September 2020 |
Logisk OR tildelingoperator (||= operator)
Logisk OR tildelingoperatorbrugt mellem to værdier.
hvis den første værdien er false
og tildel den anden værdi.
Logisk OR tildelingseksempel
let x = 10; x ||= 5;
Siden september 2020 har alle moderne browsere understøttet ||=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
August 2020 | August 2020 | Marts 2020 | September 2020 | September 2020 |
Tom værdi sammenføjnings tildeling operator(??= operator)
Tom værdi sammenføjnings tildeling operator(Nullish Coalescing Assignment Operator)bruges mellem to værdier.
hvis den første værdi undefined
eller null
og tildel den anden værdi.
Tom værdi sammenføjnings tildeling eksempel
let x = 10; x ??= 5;
Siden september 2020 har alle moderne browsere understøttet ??=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
August 2020 | August 2020 | Marts 2020 | September 2020 | September 2020 |