Javascrip{filter}t har en veldig merkelig navnehistorikk.
Det ble først utgitt i 1995 som en del av Netscape Navigator, som ga det nye språket navnet Livescrip{filtering}t. Et år senere, for å fange med i mediehypen rundt Java på den tiden, ble navnet midlertidig endret til Javascrip{filtering}t (selvfølgelig er forholdet mellom Java og Javascrip{filtering}t det samme som for Lei Feng og Lei Feng Tower – det har ingenting med det å gjøre)
Vitsen om den skjeve nøtten er ikke morsom i det hele tatt
Oversetterens merknad: Wikipedias Javascrip{filter}t-artikkel beskriver denne historien mer detaljert
I 1996 sendte Netscape inn Javascrip{filtering}t til ECMA International (European Computer Manufacturers Association) for standardisering, og ferdigstilte endelig en ny språkstandard, som var ECMAscrip{filtering}t. Siden den gang har ECMAscrip{filtering}t vært grunnlaget for alle Javascrip{filtering}t-implementasjoner, selv om det er av historiske og markedsmessige grunner (tilsynelatende er ikke ECMAscrip{filtering}t et likt navn...... I realiteten bruker vi bare ECMAscrip{filter}t for å kalle standarden, og vi bruker vanligvis Javascrip{filter}t for å kalle dette språket.
Terminologi:
- Standard: Et sett med regler som definerer hva som skiller det fra andre ting
- Implementering: Den spesifikke implementeringen/praksis i den virkelige verden av en standard
Men Javascrip{filtering}t-utviklerne bryr seg ikke så mye om dette, fordi ECMAscrip{filtering}t ikke har endret seg mye i løpet av de 15 årene siden oppstarten, og mange virkelige implementasjoner er allerede veldig forskjellige fra standarden. Faktisk, etter utgivelsen av den første versjonen av ECMAscrip{filtering}t, ble to nye versjoner utgitt kort tid etter, men siden utgivelsen av ECMAscrip{filter}t 3 i 1999, har ingen endringer blitt lagt til i den offisielle spesifikasjonen på ti år. I stedet kjemper nettleserleverandører for å utvide sine egne språk, noe som etterlater webutviklere uten annet valg enn å eksperimentere med og støtte disse API-ene. Selv etter utgivelsen av ECMAscrip{filter}t 5 i 2009, tok det flere år før disse nye spesifikasjonene fikk bred støtte fra nettlesere, men de fleste utviklere skrev fortsatt ECMAscrip{filtering}t 3-stil kode og følte ikke behov for å lære om dem.
Oversetterens merknad: Utkastet til ECMAscrip{filter}t versjon 4 ble forlatt fordi det var for aggressivt, og Adobes Actionscrip{filtering}t 3.0 er den eneste implementeringen av ECMAscrip{filtering}t utgave 4 (Flash forente nesten nettet)
Innen 2012 begynte ting plutselig å endre seg. Det finnes en push-to-end-støtte for eldre versjoner av IE, og det er mer gjennomførbart å skrive kode i stil med ECMAscrip{filter}t 5 (ES5). Samtidig lanseres en ny ECMAscrip{filtering}t-spesifikasjon. På dette tidspunktet begynte folk å venne seg til å beskrive ulike Javascrip{filtering}t-implementasjoner i form av versjonsstøtte for ECMAscrip{filter}t-spesifikasjonen. Denne nye standarden ble opprinnelig kalt ES. Harmony. I 2015 bestemte TC39, komiteen som var ansvarlig for å utvikle utkastet til ECMAscrip{filter}t-spesifikasjonen, å endre systemet for å definere nye standarder til én gang i året, noe som betyr at hver ny funksjon kan legges til når den er godkjent, i motsetning til at den forrige spesifikasjonen først blir ferdigstilt etter at hele utkastet er ferdigstilt og alle funksjoner er i orden. Som et resultat ble ECMAscrip{filtering}t versjon 6 omdøpt til ECMAscrip{filtering}t 2015 (ES2015) før den ble publisert i juni.
Det foreslås fortsatt mange nye Javascrip{filter}t-funksjoner eller syntaks, inkludert decorators, async-await og statiske klasseegenskaper. De omtales ofte som ES7, ES2016 eller ES. Neste, men faktisk kan de bare kalles forslag eller muligheter, tross alt er ikke ES2016-spesifikasjonen fullført ennå, og det er mulig at alle vil bli introdusert, eller ingen av dem. TC39 deler et forslag inn i 4 faser, og du kan sjekke hvilket stadium hvert forslag er i på Babels nettside.
Så, hvordan bruker vi denne bunken med terminologi? Følgende liste kan hjelpe deg:
- ECMAscrip{filter}t: Et språk standardisert av ECMA International og overvåket av TC39-komiteen. Ofte brukt om selve standarden.
- Javascrip{filtering}t: Det vanligste navnet på ulike implementasjoner av ECMAscrip{filtering}t-standarden. Dette begrepet er ikke begrenset til en spesifikk versjon av ECMAscrip{filtering}t-spesifikasjonen, og kan brukes for enhver grad av implementering av enhver versjon av ECMAscrip{filtering}t.
- ECMAscrip{filtering}t 5 (ES5): Den femte utgaven av ECMAscrip{filtering}t, standardisert i 2009. Denne spesifikasjonen er ganske fullstendig implementert i alle moderne nettlesere.
- ECMAscrip{filter}t 6 (ES6) / ECMAscrip{filter}t 2015 (ES2015): Den sjette utgaven av ECMAscrip{filtering}t ble revidert og standardisert i 2015. Denne standarden er delvis implementert i de fleste moderne nettlesere. Du kan konsultere denne kompatibilitetstabellen for å se hvordan ulike nettlesere og verktøy er implementert.
- ECMAscrip{filter}t 2016: Den forventede syvende utgaven av ECMAscrip{filter}t-revisjonen, planlagt utgitt neste sommer. De spesifikke funksjonene som skal inkluderes i denne spesifikasjonen er ennå ikke ferdigstilt
- ECMAscrip{filter}t-forslag: Funksjons- og syntaksforslag som vurderes for inkludering i fremtidige versjoner av ECMAscrip{filter}t-standarden vil gå gjennom fem faser: Stråmann, Forslag, Utkast, Kandidat og Ferdig.
Gjennom hele denne bloggen vil jeg referere til den nåværende versjonen av ECMAscrip{filtering}t som ES6 (fordi det er det de fleste utviklere er mest vant til), neste års spesifikasjon som ES2016 (fordi, i motsetning til ES6/ES2015, dette navnet vil bli brukt gjennom hele standardiseringsprosessen), og fremtidige språkkonsepter som ennå ikke er ferdigstilte eller utarbeidet ECMAscrip{filtering}t-forslag eller Javascrip{filter}t forslag. Jeg vil gjøre mitt beste for å følge denne artikkelen ved enhver anledning som kan skape forvirring.