Vești bune – noile caracteristici ES2020 sunt acum finalizate! Aceasta înseamnă că acum avem o idee completă a schimbărilor care se întâmplă în ES2020, noua și îmbunătățită specificație a JavaScript. Deci, să vedem care sunt aceste schimbări.

# 1: BigInt

BigInt, una dintre cele mai așteptate funcții din JavaScript, este în sfârșit aici. De fapt, permite dezvoltatorilor să aibă o reprezentare întreagă mult mai mare în codul lor JS pentru procesarea datelor pentru tratarea datelor.

În acest moment, numărul maxim pe care îl puteți stoca ca număr întreg în JavaScript este pow(2, 53) - 1 . Dar BigInt vă permite de fapt să mergeți chiar și dincolo de asta.

10 noi caracteristici JavaScript in ES2020 pe care ar trebui

Cu toate acestea, trebuie să aveți un n atașat chiar la sfârșitul numărului, după cum puteți vedea mai sus. Acest n denotă faptul că acesta este un BigInt și ar trebui tratat diferit de motorul JavaScript (de motorul v8 sau de orice motor pe care îl folosește).

Această îmbunătățire nu este compatibilă înapoi, deoarece sistemul tradițional de numere este IEEE754 (care pur și simplu nu poate accepta numere de această dimensiune).

# 2: Import dinamic

Importurile dinamice în JavaScript vă oferă opțiunea de a importa în mod nativ fișiere JS ca module din aplicația dvs. Acest lucru este la fel ca modul în care o faceți cu Webpack și Babel în acest moment.

Această caracteristică vă va ajuta să expediați codul la cerere la cerere, mai bine cunoscut sub numele de divizare a codului, fără cheltuielile generale ale pachetului web sau al altor pachete de module. De asemenea, puteți încărca condiționat codul într-un bloc if-else, dacă doriți.

Lucrul bun este că importați de fapt un modul și astfel nu poluează niciodată spațiul de nume global.

1611909485 473 10 noi caracteristici JavaScript in ES2020 pe care ar trebui

# 3: Coaliere nulă

Coaliția nulă adaugă capacitatea de a verifica cu adevărat nullish valori în loc de falsey valori. Care e diferenta dintre nullish și falsey valori, s-ar putea să întrebi?

În JavaScript, o mulțime de valori sunt falsey, ca șirurile goale, numărul 0, undefined, null, false, NaN, și așa mai departe.

Cu toate acestea, de multe ori este posibil să doriți să verificați dacă o variabilă este nulă – asta dacă este una dintre ele undefined sau null, ca atunci când este în regulă ca o variabilă să aibă un șir gol sau chiar o valoare falsă.

În acest caz, veți folosi noul operator de coalescență nul, ??

1611909485 778 10 noi caracteristici JavaScript in ES2020 pe care ar trebui

Puteți vedea clar cum operatorul OR returnează întotdeauna o valoare adevărată, în timp ce operatorul nul returnează o valoare non-nulllish.

# 4: Înlănțuire opțională

Sintaxa opțională de înlănțuire vă permite să accesați proprietățile obiectului cuibărit profund, fără a vă face griji dacă proprietatea există sau nu. Dacă există, minunat! Dacă nu, undefined va fi returnat.

Acest lucru nu funcționează numai pe proprietățile obiectelor, ci și pe apelurile și matricele de funcții. Super comod! Iată un exemplu:

1611909485 232 10 noi caracteristici JavaScript in ES2020 pe care ar trebui

# 5: Promise.allSettled

Promise.allSettled metoda acceptă o serie de promisiuni și se rezolvă numai atunci când toate sunt stabilite – fie rezolvate, fie respinse.

Acest lucru nu a fost disponibil în mod nativ înainte, chiar dacă unele implementări apropiate, cum ar fi race și all erau disponibile. Acest lucru aduce „Rulați doar toate promisiunile – nu-mi pasă de rezultate” nativ în JavaScript.

1611909485 133 10 noi caracteristici JavaScript in ES2020 pe care ar trebui

# 6: String # matchAll

matchAll este o nouă metodă adăugată la String prototip care este legat de Expresii regulate. Aceasta returnează un iterator care returnează toate grupurile potrivite unul după altul. Să aruncăm o privire la un exemplu rapid:

1611909485 794 10 noi caracteristici JavaScript in ES2020 pe care ar trebui

# 7: globalAcest lucru

Dacă ați scrie un cod JS multiplataformă care ar putea rula pe Node, în mediul browserului și, de asemenea, în interiorul lucrătorilor web, ați avea dificultăți în a obține obiectul global.

Asta pentru că este window pentru browsere, global pentru Node și self pentru lucrătorii web. Dacă există mai multe runtime, obiectul global va fi diferit și pentru ei.

Deci, ar fi trebuit să aveți propria implementare de detectare a timpului de execuție și apoi folosirea globală corectă – adică până acum.

ES2020 ne aduce globalThis care se referă întotdeauna la obiectul global, indiferent unde executați codul:

1611909485 446 10 noi caracteristici JavaScript in ES2020 pe care ar trebui

# 8: Exportul spațiului de nume al modulului

În modulele JavaScript, era deja posibilă utilizarea următoarei sintaxi:

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

Cu toate acestea, nu simetric export sintaxa a existat, până acum:

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

Acest lucru este echivalent cu următorul:

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

# 9: Bine definit pentru ordine

Specificația ECMA nu a specificat în ce ordine for (x in y) ar trebui să fugă. Chiar dacă browserele au implementat o comandă consecventă pe cont propriu înainte, acest lucru a fost oficializat în ES2020.

# 10: import.meta

import.meta obiectul a fost creat prin implementarea ECMAScript, cu un null prototip.

Luați în considerare un modul, module.js:

<script type="module" src="https://www.freecodecamp.org/news/javascript-new-features-es2020/module.js"></script>

Puteți accesa informațiile meta despre modul utilizând import.meta obiect:

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

Returnează un obiect cu un url proprietate care indică adresa URL de bază a modulului. Acesta va fi fie adresa URL de la care a fost obținut scriptul (pentru scripturi externe), fie adresa URL de bază a documentului care conține (pentru scripturile inline).

Concluzie

Îmi place consistența și viteza cu care a evoluat și evoluează comunitatea JavaScript. Este uimitor și cu adevărat minunat să vedem cum a venit JavaScript dintr-o limbă care a fost huiduit, după 10 ani, într-unul dintre cele mai puternice, mai flexibile și versatile limbaje din toate timpurile de astăzi.

Doriți să învățați JavaScript și alte limbaje de programare într-un mod complet nou? Mergeți la o o nouă platformă pentru dezvoltatori Lucrez la încercarea de azi!

Care este caracteristica ta preferată din ES2020? Spune-mi despre asta prin tweeting și conectându-mă cu mine pe Stare de nervozitate și Instagram!

Aceasta este o postare de blog compusă din videoclipul meu care are același subiect. Ar însemna lumea pentru mine dacă i-ai putea arăta ceva dragoste!