ECMAScript

ECMAScript er et sett av standarder for Script typen programmeringsspråk standardiseres av Ecma International under ECMA-262-spesifikasjonen. Det er derfor en standard, hvis spesifikasjoner er implementert på forskjellige skriptspråk, som JavaScript eller ActionScript . Det er et prototype orientert programmeringsspråk .

Historie og utvikling

LiveScript og Mosaic Communications Corporation

Selskapet Netscape , opprinnelig kjent som Mosaic Communications Corporation , har utviklet et skriptspråk på klientsiden kalt LiveScript for å styrke den kommersielle tilgangen til webserveren. Utgivelsen av LiveScript kom da NCSA tvang Mosaic Communications Corporation til å endre navn til Netscape .

Netscape jobbet deretter med utviklingen av en klientorientert versjon av LiveScript . Noen dager før utgivelsen endret Netscape navnet fra LiveScript til JavaScript . Siden Sun Microsystems og Netscape er partnere, og JVM blir stadig mer populært, tjente denne navneendringen begge selskapenes interesser. Sun lovet derfor å ikke saksøke Netscape .

JavaScript og Netscape

I desember 1995 kunngjorde Sun og Netscape utgivelsen av JavaScript . I mars 1996 implementerte Netscape JavaScript-motoren i sin nettleser Netscape Navigator 2.0. Suksessen til denne nettleseren bidrar til rask bruk av JavaScript i kundeorientert nettutvikling. Microsoft reagerte deretter ved å utvikle JScript , som den deretter inkluderte i Internet Explorer 3.0 i august 1996 for utgivelsen av nettleseren.

Netscape sender deretter JavaScript til ECMA for standardisering. Arbeidet startet i november 1996 og avsluttet i juni 1997 med vedtakelsen av den nye ECMAScript- standarden . Spesifikasjonene er skrevet i Standard ECMA-262 .

Versjoner

ECMA-262

Det er for tiden 11 versjoner av ECMA-262-standarden.

ECMAScript Edition 4 (ES4)

Nå forlatt til fordel for ES5, ble de første verkene kritisert fordi de endret språket, som gikk fra en programmeringsmodell med prototyper til en tradisjonell modell basert på klasser som Java, C ++ eller C #.

Denne prototype- orienterte modellen er for mange den mest effektive modellen innen objektorientert utvikling .

En første versjon av implementeringsregisteret for ECMAScript 4 har vært tilgjengelig siden juni 2007.

I tillegg har Mozilla og Adobe Systems arbeidet med implementeringen av spesifikasjonene til ECMAScript 4 i JavaScript 2 og ActionScript 3. For å forene disse implementeringene med opprettelsen av den virtuelle Tamarin-maskinen , samarbeider Mozilla og Adobe Systems om Tamarin-prosjektet .

ECMAScript Edition 5 (ES5)

Etter kritikk av ES4 bestemte en rekke selskaper, inkludert Yahoo, Microsoft og Google, seg for å utvikle en mindre ambisiøs oppdatering av ES3 parallelt, kalt ES3.1.

Til tross for alternativforskjellene med ES4-teamet ble endelig beslutningen tatt for å stoppe utviklingen av ES4 og fokusere utelukkende på ES3.1, som blir ES5 for å unngå enhver tvetydighet, og ble utgitt 3. desember 2009.

Alle disse spesifikasjonene er nå godt integrert i moderne nettlesere.

ECMAScript Edition 6 (ES6)

Navnet ES2015, den siste versjonen av ECMAScript ble utgitt i juni 2015. Den støttes av alle nyere versjoner av nettlesere.

ECMAScript Edition 7 (ES7)

Den første versjonen som ble utgitt etter endringen i standardiseringsprosessen, ES7, eller ES2016, gjør få endringer i språket. Den nye prosessen åpner for publisering av en ny standard hvert år med tilleggene som har skjedd i mellomtiden, for å unngå å publisere store endringer som det var tilfellet i 2015.

Sammenlignende

Redigering Publiseringsdato Forskjeller med forrige utgave
1 Juni 1997 1 st utgave.
2 Juni 1998 Redaksjonelle endringer i samsvar med den internasjonale standarden ISO / IEC-16262.
3 Desember 1999 Kraftigere regulære uttrykk, forbedret håndtering av strenger, nye kontrolluttalelser, unntakshåndtering med try / catch-setninger, tallformatering.
4 Aldri Utgått utgave.
5 Desember 2009 Avklare uklarheter i tre th  edition, tilbehør, introspeksjon, kontroll attributter, ekstra bord manipulasjon funksjoner, støtte JSON, streng modus for feilsjekking.
6 Juni 2015 Moduler, klasser, leksikalt omfang på blokknivå, iteratorer og generatorer, løfter om asynkron programmering, destruktureringsmønstre, optimalisering av terminalanrop, nye datastrukturer (assosiative matriser, sett, binære matriser), støtte for ekstra Unicode-tegn i tegnstrenger og vanlig uttrykk, mulighet for å utvide de forhåndsdefinerte datastrukturene.
7 Juni 2016 Eksponentieringsoperatør, ny metode for prototyper av tabeller.
8 Juni 2017
9 Juni 2018
10 Juni 2019
ESneste Under utvikling Asynkroniser / vent, bindende operatør , dekoratører, SIMD , observerbar, attributter fra offentlige og private instanser.

E4X

ECMAScript for XML (E4X) er en XML-utvidelse av ECMAScript-språket. Det er virkelig en annen standard.

Valør

applikasjon Valør Siste versjon ECMAScript-kamp
Gecko- type nettlesere med SpiderMonkey innebygd motor , inkludert Mozilla Firefox Javascript 1.8 ECMA-262, utgave 3  1
Internet Explorer JScript 5.6.7 ECMA-262, utgave 3  6
Opera ECMAScript, med JavaScript- og JScript- utvidelser 1.3 / 1.5 ECMA-262, utgave 3
KHTML- baserte nettlesere , inkludert KDEs Konqueror Javascript 1.5 ECMA-262
Framework .NET Microsoft JScript .NET og Managed JScript 8.0 ECMA-262, utgave 3  2
Adobe Flash ActionScript 2

3

ECMA-262, utgave 3  3

ECMA-262, utgave 4  4

Adobe Acrobat Javascript 1.5 ECMA-262, utgave 3
Generelt skriptspråk DMDScript 1.06 ECMA-262
OpenLaszlo plattform Javascript 1.4 ECMA-262, utgave 3  5
iCab InScript 3.22 ECMA-262, utgave 3
Implementering av XML i nettlesere basert på Gecko og innebygde programmer som SpiderMonkey E4X ??? ECMA-357, utgave 2

Merknad (1) : E4X delvis støttet av Gecko 1.9; for andre funksjoner.

Merknad (2) : Microsoft indikerer at JScript 8.0 støtter "nesten alle funksjonene i ECMAScript Edition 3", men ikke viser funksjoner som ikke støttes.

Merknad (3) : I tillegg til støtte for ECMA-262 utgave 3, inkluderer ActionScript 2 også støtte for egenskaper, funksjoner og mekanismer som ble tilbudt i en forhåndsvisning av ECMA-262 utgave 3. Det er ikke kjent om ActionScript vil forbli synkronisert med fremtidige endringer i ECMAScript-spesifikasjonene.

Merknad (4) : Adobe indikerer at den støtter en foreløpig versjon av utgave 4 av ECMA-262.

Merknad (5) : OpenLaszlo støtter delvis ECMA-262 utgave 3.

Merknad (6) : Et "JScript-avvik fra ES3" -dokument er publisert av Microsoft .

Mozilla-støtte, ( SpiderMonkeyC-språk og Rhino i Java ), brukes av flere tredjepartsprogrammer, for eksempel Yahoo! Widget Engine (Konfabulator) og skriptspråk for Macintosh JavaScript OSA .

Safari bruker JavaScriptCore som er basert på biblioteket KJS fra KDE .

Korrespondanse

Javascript JScript ECMAScript
1.0 (Netscape 2.0, mar 1996) 1.0 (IE 3.0 - og første versjon, august 1996)
1.1 (Netscape 3.0, aug 1996) 2.0 (IE 3.0 - siste versjon, januar 1997)
1.2 (Netscape 4.0, jun 1997)
1.3 (Netscape 4.5, oktober 1998) 3.0 (IE 4.0, oktober 1997) utgave 1 (juni 1997) / utgave 2 (juni 1998)
1.4 (bare Netscape Server) 4.0 (Visual Studio 6, ingen ny versjon av IE)
5.0 (IE 5.0, mar 1999)
5.1 (IE 5.01)
1.5 (Netscape 6.0, nov 2000, men også
senere versjoner av Netscape og Mozilla )
5.5 (IE 5.5, juli 2000) utgave 3 (desember 1999)
5.6 (IE 6.0, oktober 2001)
1.6 (Gecko 1.8, Firefox 1.5, november 2005) utgave 3, med nye funksjoner: E4X , Arrayekstrautstyr (f.eks. Array.prototype.forEach) Arrayog Stringgeneriske produkter [1]
1.7 (Gecko 1.8.1, Firefox 2.0, oktober 2006)
1.8 (Gecko 1.9, Firefox 3.0, mai 2007)
2.0 utgave 4 (under utvikling)

Vedlegg

Merknader og referanser

  1. ECMA, "  Den 11. versjonen av standarden  " ,juni 2020(åpnet juni 2020 ) .
  2. (in) Publisering av et eget nettsted .
  3. Brendan Eich , "  ECMAScript Harmony  " ,13. august 2008(åpnet 17. desember 2015 ) .
  4. (in) "  ECMAScript Language Specification, 5th edition  " .
  5. “  ECMAScript 5-kompatibilitetstabell  ” , på kangax.github.io (åpnet 17. desember 2015 ) .
  6. “  ECMAScript 2015 Language Specification - ECMA-262 6. utgave  ” , på www.ecma-international.org (åpnet 17. desember 2015 ) .
  7. “  ECMAScript 6 kompatibilitetstabell  ” , på kangax.github.io (åpnet 17. desember 2015 ) .
  8. Axel Rauschmayer, “  Er ikke ECMAScript 2016 for lite?  » (Besøkt 12. juni 2019 ) .
  9. (in) "  Ferdige forslag  " (åpnet 14. september 2016 ) .
  10. "  Aktive forslag  " (åpnet 14. september 2016 ) .
  11. (en) ECMA-357 .

Relaterte artikler

Eksterne linker