ECMAScript 2022

JavaScript-versionnummer

Gamla ECMAScript-versioner namnges efter nummer: ES5 och ES6.

Från och med 2016 namnges versionerna efter året: ES2016, 2018, 2020, 2022.

Nya funktioner i ES2022

Varning:

Dessa egenskaper är relativt nya.

Gamla webbläsare kan behöva ersättningskod (Polyfill).

JavaScript Array at()

ES2022 introducerade arraymetoder at():

Exempel 1

Få tredje elementet i arrayen fruits:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);

Prova själv

Exempel 2

Få tredje elementet i arrayen fruits:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[2];

Prova själv

at() Metoden returnerar det element som är angivet av indexet från arrayen.

at() Metod och [] Resultaten är desamma.

Från och med mars 2022 stöds detta av alla moderna webbläsare: at() Metod:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
April 2021 juli 2021 juli 2021 mars 2022 augusti 2021

Observera:

Många språk tillåter användning av negativa index (t.ex. [-1])Åtkomst till slutet av objekt/数组/sträng.

Detta är inte möjligt i JavaScript eftersom [] Används för att få tillgång till arrayer och objekt. obj[-1] refererar till värdet för nyckeln -1, inte den sista egenskapen i objektet.

at() Metoden introducerades i ES2022 för att lösa detta problem.

JavaScript String at()

ES2022 introducerade stringmetoder at():

Exempel 1

Få tredje bokstaven i strängen name:

const name = "W3Schools";
let letter = name.at(2);

Prova själv

Exempel 2

Få tredje bokstaven i strängen name:

const name = "W3Schools";
let letter = name[2];

Prova själv

at() Metoden returnerar den tecken som är på den specificerade indexpositionen från en sträng.

at() Metod och [] Resultaten är desamma.

Från och med mars 2022 stöds detta av alla moderna webbläsare: at() Metod:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
April 2021 juli 2021 juli 2021 mars 2022 augusti 2021

RegExp d-modifikator

ES2022 lade till /d Modifikatorer används för att representera början och slutet av en match.

Exempel

let text = "aaaabb";
let result = text.match(/(aa)(bb)/d);

Prova själv

RegExp-modifikatorer används för att specificera matchning utan att ta hänsyn till storleks skiljetecken och andra globala sökningar:

Modifikator Beskrivning Prova själv
g utföra global matchning (sök alla). Prova själv
i utföra matchning utan att ta hänsyn till storleks skiljetecken. Prova själv
d utföra matchning av understräng (nytt i ES2022). Prova själv
m utföra matchning av flera rader. Prova själv

Object.hasOwn()

ES2022 erbjuder ett säkert sätt att kontrollera om en egenskap är en egen egenskap hos ett objekt.

Object.hasOwn() liknar Object.prototype.hasOwnPropertymen stöder alla objekttyper.

Exempel

Object.hasOwn(myObject, age)

Prova själv

Felorsak

ES2022 tillåter att specificera den grundläggande orsaken till ett fel genom error.cause.

Exempel

connectData(); 
  catch (err) { 
} 
  throw new Error("Anslutning misslyckades.", { cause: err }); 
}

Prova själv

JavaScript await import

JavaScript-moduler kan nu vänta på nödvändiga resurser innan de körs:

import {myData} from './myData.js';
const data = await myData();

JavaScript-klassfältdeklarationer

class Hello {
  counter = 0; // klassfält
}
const myClass = new Hello();
let x = myClass.counter;

Från och med april 2021 stöds klassfältdeklarationer i alla moderna webbläsare:

Chrome Edge Firefox Safari Opera
Chrome 72 Edge 79 Firefox 69 Safari 14.1 Opera 60
2019 åren 1 januari Januari 2020 2019 åren 9 september April 2021 Januari 2020

JavaScript privata metoder och fält

class Hello {
  #counter = 0;  // Privat variabel
  #myMethod() {} // Privat metod
}
const myClass = new Hello();
let x = myClass.#counter; // Fel
myClass.#myMethod();      // Fel

Från och med juni 2021 stöds privata metoder och fält i alla moderna webbläsare:

Chrome Edge Firefox Safari Opera
Chrome 74 Edge 79 Firefox 90 Safari 14.1 Opera 62
April 2019 Januari 2020 Juni 2021 April 2021 Juni 2019