ECMAScript

ECMAScript to zestaw standardów dla języków programowania typu skryptowego, ustandaryzowanych przez Ecma International zgodnie ze specyfikacją ECMA-262. Jest więc standardem, którego specyfikacje są zaimplementowane w różnych językach skryptowych, takich jak JavaScript czy ActionScript . Jest to język programowania zorientowany na prototypy .

Historia i rozwój

LiveScript i Mosaic Communications Corporation

Firma Netscape , pierwotnie znana jako Mosaic Communications Corporation , opracowała język skryptowy po stronie klienta o nazwie LiveScript, aby wzmocnić komercyjne podaż swojego serwera internetowego. Wydanie LiveScript nastąpiło, gdy NCSA zmusiło Mosaic Communications Corporation do zmiany nazwy na Netscape .

Następnie Netscape pracował nad rozwojem wersji LiveScript zorientowanej na klienta . Kilka dni przed wydaniem Netscape zmienił nazwę z LiveScript na JavaScript . Ponieważ Sun Microsystems i Netscape są partnerami, a JVM jest coraz bardziej popularne, ta zmiana nazwy służyła interesom obu firm. Dlatego Sun obiecał nie pozywać Netscape'a .

JavaScript i Netscape

W grudniu 1995 roku Sun i Netscape ogłosiły wydanie JavaScript . W marcu 1996 roku firma Netscape zaimplementowała silnik JavaScript w swojej przeglądarce internetowej Netscape Navigator 2.0. Sukces tej przeglądarki przyczynia się do szybkiego wykorzystania JavaScript w tworzeniu stron internetowych zorientowanych na klienta. Firma Microsoft zareagowała następnie, opracowując język JScript , który następnie dołączył do programu Internet Explorer 3.0 w sierpniu 1996 roku w celu wydania swojej przeglądarki.

Następnie Netscape przesyła JavaScript do ECMA w celu standaryzacji. Prace rozpoczęto w listopadzie 1996 r., A zakończyły w czerwcu 1997 r. Wraz z przyjęciem nowego standardu ECMAScript . Specyfikacje są zapisane w standardzie ECMA-262 .

Wersje

ECMA-262

Obecnie istnieje 11 wersji standardu ECMA-262.

ECMAScript Edition 4 (ES4)

Porzucone teraz na rzecz ES5, pierwsze prace zostały skrytykowane, ponieważ zmieniły charakter języka, który przeszedł z modelu programowania z prototypami do tradycyjnego modelu opartego na klasach takich jak Java, C ++ czy C #.

Ten model zorientowany na prototypy jest dla wielu najbardziej wydajnym modelem w programowaniu obiektowym .

Pierwsza wersja repozytorium implementacji ECMAScript 4 jest dostępna od czerwca 2007.

Ponadto Mozilla i Adobe Systems pracowały nad implementacją specyfikacji ECMAScript 4 w JavaScript 2 i ActionScript 3. Aby pogodzić te implementacje z tworzeniem maszyny wirtualnej Tamarin , Mozilla i Adobe Systems współpracują przy projekcie Tamarin .

ECMAScript Edition 5 (ES5)

W następstwie krytyki ES4, wiele firm, w tym Yahoo, Microsoft i Google, decyduje się na równoległe opracowanie mniej ambitnej aktualizacji ES3 o nazwie ES3.1.

Pomimo różnic w opcjach z zespołem ES4, ostatecznie podjęto decyzję o zatrzymaniu rozwoju ES4 i skupieniu się wyłącznie na ES3.1, który stanie się ES5, aby uniknąć jakichkolwiek niejasności, i został wydany 3 grudnia 2009.

Wszystkie te specyfikacje są teraz dobrze zintegrowane z nowoczesnymi przeglądarkami.

ECMAScript Edition 6 (ES6)

Najnowsza wersja ECMAScript, nazwana ES2015, została wydana w czerwcu 2015 r. Jest obsługiwana przez wszystkie najnowsze wersje przeglądarek.

ECMAScript Edition 7 (ES7)

Pierwsza wersja wydana po zmianie procesu normalizacji, ES7, czyli ES2016, wprowadza kilka zmian w języku. Nowy proces zakłada coroczne publikowanie nowego standardu z dodatkami, które miały miejsce w międzyczasie, aby uniknąć publikowania dużych zmian, jak miało to miejsce w 2015 roku.

Porównawczy

Redagowanie Data publikacji Różnice w stosunku do poprzedniej edycji
1 Czerwiec 1997 1 st edition.
2 Czerwiec 1998 Zmiany redakcyjne w celu dostosowania do międzynarodowej normy ISO / IEC-16262.
3 Grudzień 1999 Mocniejsze wyrażenia regularne, ulepszona obsługa ciągów, nowe instrukcje sterujące, obsługa wyjątków za pomocą instrukcji try / catch, formatowanie liczb.
4 Nigdy Wersja wycofana.
5 Grudzień 2009 Wyjaśnianie niejasności w 3 th  Edition, akcesor, introspekcji, atrybuty sterujące, dodatkowe funkcje manipulacji stoły, wsparcie JSON, ścisłe tryb sprawdzania błędów.
6 Czerwiec 2015 Moduły, klasy, zakres leksykalny na poziomie bloków, iteratory i generatory, obietnice programowania asynchronicznego, wzorce destrukturyzacji, optymalizacja wywołań terminali, nowe struktury danych (tablice asocjacyjne, zestawy, tablice binarne), obsługa dodatkowych znaków Unicode w ciągach znaków i regularne wyrażenia, możliwość rozszerzenia predefiniowanych struktur danych.
7 Czerwiec 2016 Operator potęgowania, nowa metoda prototypowania tabel.
8 Czerwca 2017
9 Czerwiec 2018
10 Czerwiec 2019
ESnext W opracowaniu Async / await, operator powiązania , dekoratory, SIMD , obserwowalne, atrybuty instancji publicznych i prywatnych.

E4X

ECMAScript for XML (E4X) to rozszerzenie XML języka ECMAScript. To rzeczywiście inny standard.

Określenie

Podanie Określenie Ostatnia wersja Zgodność z ECMAScript
Przeglądarki typu Gecko z wbudowanym silnikiem SpiderMonkey , w tym Mozilla Firefox JavaScript 1.8 ECMA-262, wydanie 3  1
Internet Explorer JScript 5.6.7 ECMA-262, wydanie 3  6
Opera ECMAScript z rozszerzeniami JavaScript i JScript 1.3 / 1.5 ECMA-262, wydanie 3
Przeglądarki oparte na KHTML , w tym Konqueror z KDE JavaScript 1.5 ECMA-262
Framework .NET Microsoft JScript .NET i zarządzany JScript 8.0 ECMA-262, wydanie 3  2
Adobe Flash ActionScript 2

3

ECMA-262, wydanie 3  3

ECMA-262, wydanie 4  4

Adobe Acrobat JavaScript 1.5 ECMA-262, wydanie 3
Ogólny język skryptowy DMDScript 1.06 ECMA-262
Platforma OpenLaszlo JavaScript 1.4 ECMA-262, wydanie 3  5
iCab InScript 3.22 ECMA-262, wydanie 3
Implementacja XML w przeglądarkach opartych na Gecko i wbudowanych programach typu SpiderMonkey E4X ??? ECMA-357, wydanie 2

Uwaga (1) : E4X częściowo obsługiwane przez Gecko 1.9; dla innych funkcji.

Uwaga (2) : Microsoft wskazuje, że JScript 8.0 obsługuje „prawie wszystkie funkcje ECMAScript Edition 3”, ale nie wymienia nieobsługiwanych funkcji.

Uwaga (3) : Oprócz obsługi ECMA-262 edycja 3, ActionScript 2 obejmuje również obsługę właściwości, funkcji i mechanizmów, które były oferowane w wersji zapoznawczej ECMA-262 edycja 3. Nie wiadomo, czy ActionScript pozostanie w synchronizacji z przyszłymi zmianami specyfikacji ECMAScript.

Uwaga (4) : Adobe informuje, że obsługuje wstępną wersję 4 edycji ECMA-262.

Uwaga (5) : OpenLaszlo częściowo obsługuje ECMA-262 wydanie 3.

Uwaga (6) : Dokument „Odchylenia JScript od ES3” został opublikowany przez firmę Microsoft .

Wsparcie Mozilli ( SpiderMonkey w języku C i Rhino w Javie ) jest używane przez kilka programów innych firm, na przykład Yahoo! Silnik widżetów (Konfabulator) i język skryptowy dla Macintosh JavaScript OSA .

Safari używa JavaScriptCore, który jest oparty na bibliotece KJS z KDE .

Korespondencja

JavaScript JScript ECMAScript
1.0 (Netscape 2.0, marzec 1996) 1.0 (IE 3.0 - i pierwsza wersja, sierpień 1996)
1.1 (Netscape 3.0, sierpień 1996) 2.0 (IE 3.0 - najnowsza wersja, styczeń 1997)
1.2 (Netscape 4.0, cze 1997)
1.3 (Netscape 4.5, październik 1998) 3.0 (IE 4.0, październik 1997) wydanie 1 (czerwiec 1997) / wydanie 2 (czerwiec 1998)
1.4 (tylko Netscape Server) 4.0 (Visual Studio 6, brak nowej wersji IE)
5.0 (IE 5.0, marzec 1999)
5.1 (IE 5.01)
1.5 (Netscape 6.0, listopad 2000; ale także
nowsze wersje Netscape i Mozilli )
5.5 (IE 5.5, lipiec 2000) wydanie 3 (grudzień 1999)
5.6 (IE 6.0, październik 2001)
1.6 (Gecko 1.8, Firefox 1.5, listopad 2005) edycja 3, z nowymi funkcjami: E4X , Arraydodatkami (np. Array.prototype.forEach) Arrayi Stringrodzajami [1]
1.7 (Gecko 1.8.1, Firefox 2.0, październik 2006)
1.8 (Gecko 1.9, Firefox 3.0, maj 2007)
2.0 edycja 4 (w fazie rozwoju)

Załączniki

Uwagi i odniesienia

  1. ECMA, „  11. wersja normy  ” ,czerwiec 2020(dostęp w czerwcu 2020 r . ) .
  2. (w) Publikacja dedykowanej strony internetowej .
  3. Brendan Eich , „  ECMAScript Harmony  ” ,13 sierpnia 2008(dostęp 17 grudnia 2015 ) .
  4. (w) "  Specyfikacja języka ECMAScript, wydanie 5  " .
  5. „  Tabela zgodności ECMAScript 5  ” , na kangax.github.io (dostęp: 17 grudnia 2015 ) .
  6. „  ECMAScript 2015 Language Specification - ECMA-262 6th Edition  ” , na www.ecma-international.org (dostęp: 17 grudnia 2015 ) .
  7. „  Tabela zgodności ECMAScript 6  ” , na kangax.github.io (dostęp: 17 grudnia 2015 ) .
  8. Axel Rauschmayer, „  Czy ECMAScript 2016 nie jest za mały?  » (Dostęp 12 czerwca 2019 r . ) .
  9. (in) „  Finished Propiments  ” (dostęp: 14 września 2016 ) .
  10. „  Aktywne oferty  ” (dostęp: 14 września 2016 r . ) .
  11. (en) ECMA-357 .

Powiązane artykuły

Linki zewnętrzne