Ce caracteristici noi majore au fost în fiecare versiune JavaScript? Ce versiune ar trebui să țintesc?

author
1 minute, 37 seconds Read

Am început un nou proiect TypeScript și mă întrebam ce versiune JavaScript / ECMA Script să țintesc. În prezent, putem alege dintre ES5, ES2015, ES2016, ES2017 și ES2018!

Cele două lucruri majore care trebuie luate în considerare atunci când selectați versiunea țintă JavaScript sunt:

  • Mediul țintă – Browser desktop? Mobil? NodeJS?
  • De ce caracteristici JS am nevoie – Clase? Module? Funcții asincrone?

Suntem norocoși să ne aflăm în epoca browserului Evergreen, astfel încât suportul pentru cele mai recente caracteristici este foarte bun în majoritatea mediilor, însă există întotdeauna situații în care utilizatorii au dispozitive mai vechi, sau sunteți blocați pe o versiune mai veche de NodeJS.

Din acest motiv, recomandarea mea generală este să vizați cea mai veche versiune care are caracteristicile de care aveți nevoie. Acest lucru va oferi un bun echilibru între suportul unui mediu țintă larg și accesul la caracteristici noi impresionante 🙂

Mai jos am rezumat ceea ce consider a fi principalele caracteristici noi lansate în fiecare versiune ECMA Script. Pentru o listă cuprinzătoare, precum și pentru detalii complete privind suportul pentru mediile țintă, consultați minunatul tabel de compatibilitate al lui Kangax.

ES5 (2009)

  • Aceasta este versiunea de bază a JS pe care se poate presupune, în general, că toate timpii de execuție (cu excepția celor foarte vechi!) o vor suporta.

ES6 / ES2015

  • Moduli standard – import și export
  • Promisiuni standardizate
  • Classe & Moștenire
  • Blocuri-variabile cu domeniu de cuprindere – letși const
  • Template Literals
  • Destructurarea obiectelor în variabile
  • Funcții generatoare
  • Structuri de date Map și Set
  • Internaționalizare pentru șiruri de caractere, Numere și date prin Intl API

ES7 / ES2016

  • Array.includes()
  • Operatorul de exponent numeric (putere a) **

ES8 / ES2017

  • Funcții asincrone
  • Object.entries
  • Funcții de umplere a șirurilor

ES9 / ES2018

  • Object Rest/Spread const obj = { ...props };
  • Iterare asincronă for await (...) {
  • Promisiune finally() funcție
  • Ambunătățiri ale expresiilor regulate (lookbehind, grupuri numite)

.

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată.