ECMAScript 2020
JavaScript-versionnummer
Gamla JS-versioner har fått namn efter nummer: ES5 (2009) och ES6 (2015).
Från och med 2016 har versionerna fått namn efter årtal: ECMAScript 2016, 2017, 2018, 2019,...
Nya funktioner i ES2020:
- BigInt
- Strängmetod matchAll()
- Tomt värde sammansättningsoperator (??)
- Valfritt kedjoroperator (?.)
- Logisk AND tilldelningsoperator (&&=)
- Logisk OR tilldelningsoperator (||=)
- Tomt värde sammansättningstilldelningsoperator (??=)
- Promise.allSettled()
- Dynamisk import
Varning
Dessa egenskaper är relativt nya.
Äldre webbläsare kan behöva ersättningskod (Polyfill).
JavaScript BigInt
JavaScript BigInt-variabler används för att lagra stora heltalsvärden som inte kan representeras med vanliga JavaScript-nummer.
JavaScript-heltal kan endast vara exakta upp till 15 siffror.
Integer-instans
let x = 999999999999999; let y = 9999999999999999; // För stort
BigInt-instans
let x = 9999999999999999; let y = 9999999999999999n;
För att skapa ett BigInt, använd n
Lägg till till slutet av ett heltal eller anropa BigInt():
Exempel
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
JavaScript-typen för BigInt är "bigint":
Exempel
let x = BigInt(999999999999999); let type = typeof x;
Sedan september 2020 har alla moderna webbläsare stöd för BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
Maj 2018 | Januari 2020 | Juli 2019 | September 2020 | Juni 2018 |
JavaScript-strängmetod matchAll()
Innan ES2020 fanns det inga strängmetoder som kunde användas för att söka efter alla förekomster av en sträng i en sträng.
Exempel
const iterator = text.matchAll("Cats");
Om parametern är ett reguljärt uttryck, måste du ställa in flaggan global (g
) annars kommer det att kasta ett TypeError.
Exempel
const iterator = text.matchAll(/Cats/g);
Om du vill genomföra en sökning utan att ta hänsyn till storlek på bokstäverna, måste du ställa in flaggan för att inte ta hänsyn till storlek på bokstäverna (i
)
Exempel
const iterator = text.matchAll(/Cats/gi);
Tips:ES2021 Introducerade strängmetoden replaceAll().
Tom värde sammanslagningsoperator (Nullish Coalescing Operator) (?? operator)
om den första parametern inte är en tom värde (null
eller undefined
så ??
Operator returnerar den första parametern.
annars returnera den andra.
Exempel
let name = null; let text = "missing"; let result = name ?? text;
Sedan mars 2020 har alla moderna webbläsare stöttat nullish operatorer:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Februari 2020 | Februari 2020 | Januari 2020 | Mars 2020 | Mars 2020 |
Valfritt anslutningsoperator (Optional Chaining Operator) (?. operator)
om objektet är undefined
eller null
såValfritt anslutningsoperatorReturnerar undefined
(istället för att kasta ett fel).
Exempel
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
Sedan mars 2020 har alla moderna webbläsare stöttat ?.=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
Februari 2020 | Februari 2020 | Mars 2020 | Mars 2020 | Mars 2020 |
Logisk AND-tilldelningsoperator (&&=-operator)
Logisk AND tilldelningsoperatoranvänds mellan två värden.
om den första värdet är true
om den första värdet är null eller undefined, tilldelas den andra värdet.
Logisk AND tilldelningsoperator exemplar
let x = 100; x &&= 5;
Alla moderna webbläsare har stöttat sedan september 2020 &&=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Augusti 2020 | Augusti 2020 | Mars 2020 | September 2020 | September 2020 |
Logisk OR tilldelningsoperator (||= operator)
Logisk OR tilldelningsoperatoranvänds mellan två värden.
om den första värdet är false
om den första värdet är null eller undefined, tilldelas den andra värdet.
Logisk OR tilldelningsoperator exemplar
let x = 10; x ||= 5;
Alla moderna webbläsare har stöttat sedan september 2020 ||=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Augusti 2020 | Augusti 2020 | Mars 2020 | September 2020 | September 2020 |
Tom-värde-kombinerings tilldelningsoperator(??=-operator)
Tom-värde-kombinerings tilldelningsoperator(Nullish Coalescing Assignment Operator)används mellan två värden.
om den första värdet undefined
eller null
om den första värdet är null eller undefined, tilldelas den andra värdet.
Tom-värde-kombinerings tilldelningsoperator-exempel
let x = 10; x ??= 5;
Alla moderna webbläsare har stöttat sedan september 2020 ??=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Augusti 2020 | Augusti 2020 | Mars 2020 | September 2020 | September 2020 |