ES2020 10 uut JavaScripti funktsiooni, mida peaksite teadma

Hea uudis - ES2020 uued funktsioonid on nüüd valmis! See tähendab, et meil on nüüd täielik ülevaade muudatustest, mis toimuvad ES2020-s, mis on JavaScripti uus ja täiustatud spetsifikatsioon. Nii et vaatame, mis need muudatused on.

# 1: BigInt

BigInt, üks JavaScripti oodatuimaid funktsioone, on lõpuks kohal. See võimaldab arendajatel oma JS-koodis andmetöötluseks andmete töötlemiseks olla palju suurem täisarv.

Praegu saab JavaScripti täisarvuna salvestada maksimaalselt pow(2, 53) - 1. Kuid BigInt võimaldab teil sellest isegi kaugemale minna.  

Kuid sa pead olema nlisatud päris lõpus arvu, nagu näete eespool. See ntähendab, et see on BigInt ja JavaScripti mootor (v8 mootor või mis tahes mootor, mida see kasutab) peaks seda erinevalt kohtlema.

See täiustus ei ole tagurpidi ühilduv, kuna traditsiooniline numbrisüsteem on IEEE754 (mis lihtsalt ei toeta selle suurusega numbreid).

# 2: Dünaamiline import

JavaScripti dünaamiline import annab teile võimaluse JS-faile dünaamiliselt moodulitena oma rakenduses importida. See on täpselt nii, nagu teete seda praegu Webpacki ja Babeliga.

See funktsioon aitab teil saata veebipakettide või muude moodulipakettide üldkuludeta tellitaval nõudmisel koodi, mida tuntakse paremini koodide jagamise nime all. Soovi korral saate koodi tingimuslikult laadida ka if-else plokki.

Hea on see, et impordite mooduli ja nii ei reostata see kunagi ülemaailmset nimeruumi.

# 3: Nullish Coalescing

Nulllik ühinemine lisab võimaluse nullishväärtuste asemel tõeliselt kontrollida falseyväärtusi. Mis vahe on nullishja falseyväärtused, võite küsida?

Jscriptis palju väärtused falsey, nagu tühjad stringid arv 0, undefined, null, false, NaN, ja nii edasi.

Paljudel juhtudel võiksite siiski kontrollida, kas muutuja on null - see on siis, kui see on kumbki undefinedvõi nullnäiteks siis, kui muutuja jaoks on tühi string või isegi vale väärtus.

Sellisel juhul kasutate uut nullilist ühinemisoperaatorit, ??

Näete selgelt, kuidas operaator OR tagastab alati tõese väärtuse, samas kui tühine operaator tagastab väärtuse, mis pole null.

# 4: Valikuline ketid

Valikuline aheldamise süntaks võimaldab teil pääseda sisse sügavalt sisestatud objekti omadustele, muretsemata, kas vara on olemas või mitte. Kui see on olemas, siis tore! Kui ei, undefinedsiis tagastatakse.

See töötab mitte ainult objekti omadustel, vaid ka funktsioonikõnedel ja massiividel. Super mugav! Siin on näide:

# 5: Promise.allSettled

Promise.allSettledMeetod aktsepteerib array Lubadused ja taandub ainult siis, kui need kõik on väljakujunenud - kas lahendatud või tagasi lükata.

Varem ei olnud see loomulikult saadaval, kuigi mõned lähedased rakendused meeldisid raceja allolid saadaval. See toob "Lihtsalt kõik lubadused ellu - mind ei huvita tulemused" JavaScripti.

# 6: string # matchAll

matchAllon Stringprototüübile lisatud uus meetod, mis on seotud regulaaravaldistega. See tagastab iteraatori, mis tagastab kõik sobitatud rühmad üksteise järel. Vaatame kiiret näidet:

# 7: globaalne

Kui kirjutaksite platvormidevahelise JS-koodi, mis võiks töötada Node'is, brauserikeskkonnas ja ka veebitöötajate sees, oleks teil globaalse objekti kättesaamine keeruline.

Seda seetõttu, et see on windowmõeldud brauseritele, globalNode'ile ja selfveebitöötajatele. Kui käitamisi on rohkem, on ka nende jaoks globaalne objekt erinev.

Nii et teil oleks pidanud olema oma rakendus juurutamise tuvastamiseks ja seejärel õige globaalse - st siiani - kasutamiseks.

ES2020 toob meid, globalThismis viitab alati globaalsele objektile, olenemata sellest, kus te oma koodi täidate :

# 8: mooduli nimeruumi eksport

JavaScripti moodulites oli juba võimalik kasutada järgmist süntaksit:

import * as utils from './utils.mjs'

Sümmeetrilist exportsüntaksit seni ei olnud:

export * as utils from './utils.mjs'

See on samaväärne järgmisega:

import * as utils from './utils.mjs' export { utils }

# 9: Hästi määratletud tellimus

ECMA spetsifikatsioonis ei täpsustatud, millises järjekorras for (x in y)  peaks töötama. Ehkki brauserid rakendasid järjepidevat järjekorda juba varem, on see ametlikult standarditud ES2020-s.

# 10: import.meta

import.metaObjekti loodi ECMAScript rakendamise, mille nullprototüüp.

Mõelge moodulile module.js:

Mooduli metateabele pääseb juurde import.metaobjekti abil:

console.log(import.meta); // { url: "file:///home/user/module.js" }

See tagastab urlatribuudi objekti, mis näitab mooduli põhi-URL-i. See on kas URL, kust skript saadi (väliste skriptide jaoks), või sisaldava dokumendi dokumendi baasi URL (tekstisiseste skriptide jaoks).

Järeldus

Mulle meeldib järjepidevus ja kiirus, millega JavaScripti kogukond on arenenud ja areneb. On hämmastav ja tõeliselt imeline näha, kuidas JavaScripti pärineb keelest, mida kümme aastat hiljem kasutati, tänapäeval kõigi aegade tugevamateks, paindlikumateks ja mitmekülgsemateks keelteks.

Kas soovite õppida JavaScripti ja muid programmeerimiskeeli täiesti uuel viisil? Minge uuele arendajatele mõeldud platvormile, mille kallal täna proovin!

Mis on teie ES2020 lemmikfunktsioon? Räägi mulle sellest Twitteris ja Instagramis säutsudes ja minuga ühendust võttes!

See on ajaveebipostitus, mis on koostatud minu videost ja millel on sama teema. See tähendaks minu jaoks maailma, kui suudaksite talle näidata mingit armastust!