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
- Array at()
- String at()
- RegExp /d
- Object.hasOwn()
- error.cause
- await import
- Luokan kenttäjulistus
- Yksityiset metodit ja kentät
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);
Esimerkki 2
Hanki fruits-tietojoukon kolmas elementti:
const fruits = ["Banana", "Orange", "Apple", "Mango"]; let fruit = fruits[2];
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);
Esimerkki 2
Hanki merkkijono 'name' kolmas kirjain:
const name = "W3Schools"; let letter = name[2];
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);
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.hasOwnProperty
tukee kaikkia objektityyppejä.
Esimerkki
Object.hasOwn(myObject, age)
Virheen syy
ES2022 sallii määrittää virheen perimmäisen syyn error.cause:lla.
Esimerkki
try { connectData(); } throw new Error("Connecting failed.", { cause: err }); }
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 |