Jag startade ett nytt TypeScript-projekt och undrade vilken version av JavaScript/ECMA Script jag skulle sikta på. Vi kan för närvarande välja mellan ES5, ES2015, ES2016, ES2017 och ES2018!
De två viktigaste sakerna att tänka på när du väljer din JavaScript-målversion är:
- Målmiljö – skrivbordswebbläsare? Mobiltelefon? NodeJS?
- Vilka JS-funktioner behöver jag – klasser? Moduler? Async-funktioner?
Vi har turen att befinna oss i Evergreen Browser-åldern, så stödet för de senaste funktionerna är mycket bra i de flesta miljöer, men det finns alltid situationer när användarna har äldre enheter, eller när du sitter fast i en äldre version av NodeJS.
Därför är min allmänna rekommendation att rikta in dig på den äldsta versionen som har de funktioner du behöver. Detta ger en bra balans mellan stöd för en bred målmiljö och tillgång till fantastiska nya funktioner 🙂
Nedan har jag sammanfattat vad jag ser som de viktigaste nya funktionerna som släppts i varje ECMA Script-version. För en fullständig lista och fullständiga uppgifter om stöd för målmiljöer, se Kangax fantastiska kompatibilitetstabell.
ES5 (2009)
- Detta är den baslinjeversion av JS som man i allmänhet kan anta att alla körsystem (utom riktigt gamla!) kommer att ha stöd för.
ES6 / ES2015
- Standardiserade moduler –
import
ochexport
- Standardiserade löften
- Klasser & Arv
- Block-scoped variables –
let
ochconst
- Template Literals
- Object destructing into variables
- Generator functions
- Map and Set data structures
- Internationalisation for Strings, Tal och datum via
Intl
API
ES7 / ES2016
- Array.includes()
- Numerisk exponentoperatör
**
ES8 / ES2017
- Async-funktioner
- Object.entries
- String padding functions
ES9 / ES2018
- Object Rest/Spread
const obj = { ...props };
- Asynkron Iteration
for await (...) {
- Promise
finally()
function - Förbättringar av regelbundna uttryck (lookbehind, namngivna grupper)