Hvilke vigtige nye funktioner var der i hver enkelt JavaScript-version? Hvilken version skal jeg sigte på?

author
1 minute, 25 seconds Read

Så jeg var ved at starte et nyt TypeScript-projekt og spekulerede på, hvilken JavaScript/ECMA Script-version jeg skulle sigte på. Vi kan i øjeblikket vælge mellem ES5, ES2015, ES2016, ES2017 og ES2018!

De to vigtigste ting, du skal overveje, når du vælger din JavaScript-målversion, er:

  • Målmiljø – Desktopbrowser? Mobil? NodeJS?
  • Hvilke JS-funktioner har jeg brug for – Klasser? Moduler? Async-funktioner?

Vi er heldige at være i Evergreen-browserens tidsalder, så understøttelsen af de nyeste funktioner er meget god i de fleste miljøer, men der er altid situationer, hvor brugerne har ældre enheder, eller hvor du sidder fast på en ældre version af NodeJS.

Derfor er min generelle anbefaling at målrette den ældste version, der har de funktioner, du har brug for. Dette vil give en god balance mellem bred målmiljøunderstøttelse og adgang til fantastiske nye funktioner 🙂

Nedenfor har jeg opsummeret, hvad jeg ser som de vigtigste nye funktioner, der er udgivet i hver ECMA Script-version. For en udførlig liste samt fuldstændige oplysninger om understøttelse af målmiljøer henvises til Kangax’ fantastiske kompatibilitetstabel.

ES5 (2009)

  • Dette er den basisversion af JS, som man generelt kan gå ud fra, at alle run-times (undtagen virkelig gamle!) vil understøtte.

ES6 / ES2015

  • Standardiserede moduler – import og export
  • Standardiserede løfter
  • Klasser & Arvelighed
  • Blok-scoped-variabler – letog const
  • Template Literals
  • Objekt destrueres til variabler
  • Generatorfunktioner
  • Map- og Set-datastrukturer
  • Internationalisering for Strings, Tal og datoer via Intl API

ES7 / ES2016

  • Array.includes()
  • Numerisk eksponent (potens af)-operator **

ES8 / ES2017

  • Async-funktioner
  • Object.entries
  • String padding functions

ES9 / ES2018

  • Object Rest/Spread const obj = { ...props };
  • Asynkron Iteration for await (...) {
  • Promise finally() function
  • Regular expression enhancements (lookbehind, named groups)

Similar Posts

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.