ECMAScript 2020
JavaScript-versiot
Vanhat JS-versiot on nimetty numeroilla: ES5 (2009) ja ES6 (2015).
Vuodesta 2016 lähtien versiot on nimetty vuosien mukaan: ECMAScript 2016, 2017, 2018, 2019, ...
ES2020:n uudet ominaisuudet:
- BigInt
- Merkistömenetelmä matchAll()
- Tyhjän arvon yhdistävä operaattori (??)
- Valinnainen ketjusymboleihin liittävä operaattori (?.)
- Looginen AND-asetusoperaattori (&&=)
- Looginen OR-asetusoperaattori (||=)
- Tyhjän arvon yhdistävä operaattori (??=)
- Promise.allSettled()
- Dynaaminen tuonti
Varoitus
Nämä ominaisuudet ovat suhteellisen uusia.
Vanhemmat selaimet saattavat vaatia korvaavia koodia (polyfill).
JavaScript BigInt
JavaScriptin BigInt-muuttujat käytetään suurten kokonaislukujen tallentamiseen, jotka eivät voi olla normaalien JavaScriptin lukujen muodossa.
JavaScriptin kokonaisluvut voivat olla enintään 15 numeroa tarkkoja.
Integer-esimerkki
let x = 999999999999999; let y = 9999999999999999; // Liian suuri
BigInt-esimerkki
let x = 9999999999999999; let y = 9999999999999999n;
Jos haluat luoda BigInt, lisää n
Liitä lisää lukuun tai kutsu BigInt():
Esimerkki
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
BigInt:n JavaScript-tyyppi on "bigint":
Esimerkki
let x = BigInt(999999999999999); let type = typeof x;
Vuodesta 2020 syyskuusta lähtien kaikki nykyaikaiset selaimet tukevat BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
Kesäkuun 2018 | Tammikuun 2020 | Heinäkuun 2019 | Syyskuu 2020 | Kesäkuun 2018 |
JavaScript-merkkijonomenetelmä matchAll()
ES2020 ennen ei ollut merkkijonomenetelmiä, jotka voitaisiin käyttää merkkijonon kaikkien esiintymien hakemiseen.
Esimerkki
const iterator = text.matchAll("Cats");
Jos parametri on säännöllinen lauseke, on asetettava kokonaismerkki (g
), muuten heitetään TypeError. (
Esimerkki
const iterator = text.matchAll(/Cats/g);
Jos suoritetaan merkkiä riippumaton haku, on asetettava merkkiä riippumaton merkki (i
):
Esimerkki
const iterator = text.matchAll(/Cats/gi);
Huomioitavaa:ES2021 Esitettiin merkkijonomenetelmä replaceAll().
Tyhjä arvo yhdistävä operaattori (Nullish Coalescing Operator) (?? operaattori)
Jos ensimmäinen parametri ei ole tyhjä arvo (null
tai undefined
eli ??
Operaattori palauttaa ensimmäisen parametrin.
muuten palauttaa toisen.
Esimerkki
let name = null; let text = "missing"; let result = name ?? text;
Vuodesta 2020 maaliskuusta lähtien kaikki nykyaikaiset selaimet tukevat nullish operaattoreita:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Tammikuun 2020 | Tammikuun 2020 | Tammikuun 2020 | Maaliskuu 2020 | Maaliskuu 2020 |
Valinnainen ketju operaattori (Valinnainen ketjutus operaattori) (?. operaattori)
Jos objekti on undefined
tai null
eliValinnainen ketju operaattoriPalauttaa undefined
eikä heitä virheen (eiheen).
Esimerkki
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
Vuodesta 2020 maaliskuusta lähtien kaikki nykyaikaiset selaimet tukevat ?.=
Operaattori:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
Tammikuun 2020 | Tammikuun 2020 | Maaliskuu 2020 | Maaliskuu 2020 | Maaliskuu 2020 |
Looginen AND-asetuslaskin (&&= -operaattori)
Looginen AND-asetuslause operaattoriarvojen välillä.
Jos ensimmäinen arvo on true
ja aseta toinen arvo.
Looginen AND-asetuslause esimerkki
let x = 100; x &&= 5;
Kaikki nykyaikaiset selaimet tukevat sitä vuodesta 2020 syyskuusta lähtien &&=
Operaattori:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Elokuu 2020 | Elokuu 2020 | Maaliskuu 2020 | Syyskuu 2020 | Syyskuu 2020 |
Looginen OR-asetuslause operaattori (||= operaattori)
Looginen OR-asetuslause operaattoriarvojen välillä.
Jos ensimmäinen arvo on false
ja aseta toinen arvo.
Looginen OR-asetuslause
let x = 10; x ||= 5;
Kaikki nykyaikaiset selaimet tukevat sitä vuodesta 2020 syyskuusta lähtien ||=
Operaattori:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Elokuu 2020 | Elokuu 2020 | Maaliskuu 2020 | Syyskuu 2020 | Syyskuu 2020 |
Tyhjän arvon yhdistämisasetuslaskin(??= operaattori)
Tyhjän arvon yhdistämisasetuslaskin(Nullish Coalescing Assignment Operator) käytetään kahden arvon välillä.
jos ensimmäinen arvo undefined
tai null
ja aseta toinen arvo.
Tyhjän arvon yhdistämisasetuslaskin-esimerkki
let x = 10; x ??= 5;
Kaikki nykyaikaiset selaimet tukevat sitä vuodesta 2020 syyskuusta lähtien ??=
Operaattori:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Elokuu 2020 | Elokuu 2020 | Maaliskuu 2020 | Syyskuu 2020 | Syyskuu 2020 |