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
ogexport
- Standardiserede løfter
- Klasser & Arvelighed
- Blok-scoped-variabler –
let
ogconst
- 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)