ECMAScript 2022

JavaScript-versioiden numerot

Vanhat ECMAScript-versiot nimetään numeroilla: ES5 ja ES6.

Vuodesta 2016 lähtien versiot nimetään vuosina: ES2016, 2018, 2020, 2022.

ES2022:n uudet ominaisuudet

Varoitus:

Nämä ominaisuudet ovat suhteellisen uusia.

Vanhat selaimet saattavat vaatia korvaavaa koodia (Polyfill).

JavaScript Array at()

ES2022 toihti tietojonometodin at():

Esimerkki 1

Hanki fruits-tietojoukon kolmas elementti:

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

Kokeile itse

Esimerkki 2

Hanki fruits-tietojoukon kolmas elementti:

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

Kokeile itse

at() Metodi palauttaa tietojoukosta tietyn indeksin elementin.

at() Menetelmä on [] Palautetut tulokset ovat samat.

Alkaen maaliskuusta 2022, kaikki nykyaikaiset selaimet tukevat at() Menetelmä:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Huhtikuu 2021 Heinäkuu 2021 Heinäkuu 2021 Maaliskuu 2022 Elokuu 2021

Huomaa:

Monet kielet sallivat negatiivisten indeksien käytön (esim. [-1]) Tarkastele objektin/tietojoukon/merkkijonon viimeistä elementtiä.

Tämä ei ole mahdollista JavaScriptissä, koska [] Se käytetään tietojoukon ja objektin käsittelyyn. obj[-1] viittaa arvoon avaimen -1, ei objektin viimeiseen ominaisuuteen.

at() Tämä metodi otettiin käyttöön ES2022:ssä ratkaistakseen tämän ongelman.

JavaScript String at()

ES2022 toihti merkkijonometodin at():

Esimerkki 1

Hanki merkkijono 'name' kolmas kirjain:

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

Kokeile itse

Esimerkki 2

Hanki merkkijono 'name' kolmas kirjain:

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

Kokeile itse

at() Menetelmä palauttaa merkkijonosta tietyn indeksin merkin.

at() Menetelmä on [] Palautetut tulokset ovat samat.

Alkaen maaliskuusta 2022, kaikki nykyaikaiset selaimet tukevat at() Menetelmä:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Huhtikuu 2021 Heinäkuu 2021 Heinäkuu 2021 Maaliskuu 2022 Elokuu 2021

RegExp d-merkintä

ES2022 lisäsi /d Merkinnät, jotka ilmaisevat sopivuuden alkamisen ja päättymisen.

Esimerkki

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

Kokeile itse

RegExp-merkinnät käytetään määrittämään suuruuskirjainta riippumaton ja muita globaaleja hakujen:

Merkinnät Kuvaus Kokeile itse
g Suorita globaali sopivuus (etsi kaikki). Kokeile itse
i Suorita suuruuskirjainta riippumaton sopivuus. Kokeile itse
d Suorita alijonojen sopivuus (ES2022 uusi). Kokeile itse
m Suorita monirivinen sopivuus. Kokeile itse

Object.hasOwn()

ES2022 tarjoaa turvallisen tavan tarkistaa, onko ominaisuus objektin oma ominaisuus.

Object.hasOwn() on samanlainen kuin Object.prototype.hasOwnPropertytukee kaikkia objektityyppejä.

Esimerkki

Object.hasOwn(myObject, age)

Kokeile itse

Virheen syy

ES2022 sallii määrittää virheen perimmäisen syyn error.cause:lla.

Esimerkki

try { 
  connectData(); 
} 
  throw new Error("Connecting failed.", { cause: err }); 
}

Kokeile itse

JavaScript await import

JavaScript-moduulit voivat nyt odottaa tarvittavia tuontitietoja ennen suorittamista:

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

JavaScript-luokkien kenttien ilmoitukset

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

Alkaen huhtikuusta 2021, kaikki nykyaikaiset selaimet tukevat luokkien kenttien ilmoituksia:

Chrome Edge Firefox Safari Opera
Chrome 72 Edge 79 Firefox 69 Safari 14.1 Opera 60
Tammikuu 2019 Tammikuu 2020 Syyskuu 2019 Huhtikuu 2021 Tammikuu 2020

JavaScript-yksityiset menetelmät ja kentät

class Hello {
  #counter = 0;  // Yksityinen kenttä
  #myMethod() {} // Yksityinen menetelmä
}
const myClass = new Hello();
let x = myClass.#counter; // Virhe
myClass.#myMethod();      // Virhe

Tammikuusta 2021 lähtien kaikki modernit selaimet tukevat yksityisiä menetelmiä ja kenttiä:

Chrome Edge Firefox Safari Opera
Chrome 74 Edge 79 Firefox 90 Safari 14.1 Opera 62
Huhtikuu 2019 Tammikuu 2020 Kesäkuu 2021 Huhtikuu 2021 Kesäkuu 2019