ECMaskript
Paradigma | Multi-Paradigma: Prototypbasiert, funktional, Imperativ |
---|---|
Entworfen von | Brendan Eich, ECMA International |
Erstmals erschienen | 1997 |
Disziplin tippen | schwach, dynamisch |
Webseite | www |
Haupt Implementierungen | |
JavaScript, Spinnenaffe, V8, Aktionen, Jscript, Qtscript, Inschriften, Google Apps Skript | |
Beeinflusst von | |
Selbst, Hypertalk, Awk, C, CoffeeScript, Perl, Python, Java, Planen |
![]() | |
Dateiname -Erweiterungen | .es |
---|---|
Internet -Medientyp | Anwendung/ECMascript |
Entwickelt von | Sun Microsystems, ECMA International |
Erstveröffentlichung | Juni 1997 |
Neueste Erscheinung | Ausgabe 12 Juni 2021 |
Art des Formats | Skriptsprache |
Webseite | ECMA-262, ECMA-290, ECMA-327, ECMA-357, ECMA-402 |
ECMaskript (/ˈɛkməskrɪpt/) (oder Es)[1] ist ein JavaScript Standard, um die Interoperabilität von sicherzustellen Webseiten über verschiedene Internetbrowser.[2] Es ist standardisiert durch ECMA International Nach dem Dokument ECMA-262. ECMaskript wird üblicherweise für verwendet Client-Seite Scripting auf der Weltweites Netzund es wird zunehmend zum Schreiben von Serveranwendungen und -diensten verwendet Node.js.
ECMAScript, ECMA-262 und JavaScript
ECMA-262 oder der ECMascript -Sprachspezifikation definiert die ECMascript -Sprache, oder nur ECMaskript.[3] ECMA-262 Gibt nur die Sprachsyntax und die Semantik des Kerns an API, wie zum Beispiel Array, Funktion, und globalthis, während gültige Implementierungen von JavaScript ihre eigene Funktionalität wie Eingabe/Ausgabe oder Dateisystembehandlung hinzufügen.
Geschichte
Die ECMascript -Spezifikation ist eine standardisierte Spezifikation einer Skriptsprache, die von entwickelt wurde, Brendan Eich von Netscape; Zunächst Mokka, dann Livescript und schließlich JavaScript.[4] Im Dezember 1995, Sun Microsystems und Netscape kündigte JavaScript in einer Pressemitteilung an.[5] Im November 1996 kündigte Netscape ein Treffen der an ECMA International Standardsorganisation, um die Standardisierung von JavaScript voranzutreiben.[6] Die erste Ausgabe von ECMA-262 wurde im Juni 1997 von der ECMA General Assembly übernommen. Seitdem wurden mehrere Ausgaben des Sprachstandards veröffentlicht. Der Name "ECMascript" war ein Kompromiss zwischen den Organisationen, die an der Standardisierung der Sprache beteiligt waren, insbesondere Netscape und Microsoft, deren Streitigkeiten die frühen Standardsitzungen dominierten. Eich kommentierte, dass "ECMascript immer ein unerwünschter Handelsname war, der wie a klingt Hautkrankheit. "[7] ECMaskript wurde durch formalisiert Betriebssemantik durch Arbeit bei Universität in Stanford und die Abteilung für Computer, Imperial College London zur Sicherheitsanalyse und Standardisierung.[8]
Versionen
Es werden elf Ausgaben von ECMA-262 veröffentlicht. Die Arbeiten an Version 12 des Standards wurden im Juni 2021 abgeschlossen.[9]
Auflage | Veröffentlichungsdatum | Name | Änderungen aus der vorherigen Ausgabe | Editor |
---|---|---|---|---|
1 | Juni 1997 | Erste Ausgabe | Guy L. Steele Jr. | |
2 | Juni 1998 | Editoriale Änderungen, um die Spezifikation vollständig mit ISO/IEC 16262 International Standard auszurichten | Mike Cowlishaw | |
3 | Dezember 1999 | Hinzugefügt Reguläre Ausdrücke, bessere Stringhandhabung, neue Kontrollanweisungen, Versuch/Fangen -Ausnahmeregelung, engere Definition von Fehlern, Formatierung für die numerische Ausgabe und andere Verbesserungen | Mike Cowlishaw | |
4 | Verlassen (letzter Entwurf 30. Juni 2003) | Die vierte Ausgabe wurde aufgrund politischer Unterschiede in Bezug auf die Komplexität der Sprache aufgegeben. Viele für die vierte Ausgabe vorgeschlagene Funktionen wurden vollständig fallen gelassen. Einige wurden in die sechste Ausgabe aufgenommen. | ||
5 | Dezember 2009 | Fügt "strenge Modus" hinzu, eine Untergruppe, die eine gründlichere Fehlerprüfung bereitstellt und fehleranfällige Konstrukte vermeiden soll. Klärt viele Unklarheiten in der 3. Ausgabespezifikation und berücksichtigt das Verhalten realer Implementierungen, die sich konsequent von dieser Spezifikation unterscheiden. Fügt einige neue Funktionen hinzu, wie Getters und Setter, Bibliotheksunterstützung für JSON, und vollständiger Betrachtung auf Objekteigenschaften.[10] | Pratap Lakshman, Allen Wirfs-Brock | |
5.1 | Juni 2011 | Diese Ausgabe 5.1 des ECMAScript -Standards ist vollständig mit der dritten Ausgabe des International Standard ISO/IEC 16262: 2011 ausgerichtet. | Pratap Lakshman, Allen Wirfs-Brock | |
6 | Juni 2015[11] | ECMascript 2015 (ES2015) | Sehen 6. Ausgabe - ECMascript 2015 | Allen Wirfs-Brock |
7 | Juni 2016[12] | ECMascript 2016 (ES2016) | Sehen 7. Ausgabe - ECMascript 2016 | Brian Terlson |
8 | Juni 2017[13] | ECMascript 2017 (ES2017) | Sehen 8. Ausgabe - ECMascript 2017 | Brian Terlson |
9 | Juni 2018[14] | ECMascript 2018 (ES2018) | Sehen 9. Ausgabe - ECMascript 2018 | Brian Terlson |
10 | Juni 2019[15] | ECMascript 2019 (ES2019) | Sehen 10. Ausgabe - ECMascript 2019 | Brian Terlson, Bradley Farias, Jordan Harband |
11 | Juni 2020[16] | ECMascript 2020 (ES2020) | Sehen 11. Ausgabe - ECMascript 2020 | Jordan Harband, Kevin Smith |
12 | Juni 2021[9] | ECMascript 2021 (ES2021) | Sehen 12. Ausgabe - ECMascript 2021 | Jordan Harband, Shu-Yu Guo, Michael Ficarra, Kevin Gibbons |
Im Juni 2004 veröffentlichte ECMA International den ECMA-357-Standard und definierte eine Erweiterung des ECMascript, bekannt als ECMascript für XML (E4X). Die ECMA definierte auch ein "kompaktes Profil" für ECMascript-bekannt als ES-CP oder ECMA 327-, das für ressourcenbezogene Geräte entwickelt wurde, die 2015 zurückgezogen wurden.[17]
4. Ausgabe (verlassen)
Die vorgeschlagene vierte Ausgabe von ECMA-262 (ECMascript 4 oder Es4) wäre das erste große Update von ECMascript seit der Veröffentlichung der dritten Ausgabe im Jahr 1999 gewesen. Die Spezifikation (zusammen mit einer Referenzimplementierung) wurde ursprünglich bis Oktober 2008 für den Fertigstellung abzielt.[18] Der erste Entwurf wurde datiert Februar 1999.[19] Ein Überblick über die Sprache wurde am 23. Oktober 2007 von der Arbeitsgruppe veröffentlicht.[20]
Bis August 2008 wurde der Vorschlag für die 4. Ausgabe von ECMAScript in einen Projektcode zurückversetzt ECMascript Harmonie. Zu der Zeit diskutierte Funktionen für Harmony gehörten:
- Klassen,
- ein Modulsystem,
- Optional Geben Sie Anmerkungen ein und statische Typisierungwahrscheinlich mit a strukturelles System,
- Generatoren und Iteratoren,
- Zerstörungsaufgabe, und
- Algebraische Datentypen.
Die Absicht dieser Merkmale war teilweise die bessere Unterstützung Programmierung im großenund zu ermöglichen, einige der Fähigkeiten des Skripts zu opfern, dynamisch zu sein, um die Leistung zu verbessern. Zum Beispiel, Tamarin -Die virtuelle Maschine für ActionScript, entwickelt und offen von Adobe-hat Just-in-Time-Zusammenstellung (JIT) Unterstützung für bestimmte Klassen von Skripten.
Zusätzlich zur Einführung neuer Funktionen wurde vorgeschlagen, dass einige ES3 -Fehler in Ausgabe 4 repariert werden.[21][22] Diese Fixes und andere und Unterstützung für JSON Codierung/Decodierung wurde in die Spezifikation der 5. Ausgabe in der ECMASScript und in der Spezifikation der Ausgabe zusammengefasst.[23]
Die Arbeiten an der Ausgabe 4 begannen nach Abschluss der ES-CP-Spezifikation (Kompaktprofil) und dauerte ungefähr 18 Monate lang, wo langsamer Fortschritt die Theorie der JavaScript 2-Spezifikation von Netscape mit der Implementierungserfahrung von Microsofts Jscript .NET in Einklang gebracht wurde. Nach einiger Zeit verlagerte sich der Fokus auf die ECMascript für XML (E4X) Standard. Das Update war nicht ohne Kontroversen. Ende 2007 eine Debatte zwischen Eich, später die Mozilla FoundationCTO und Chris Wilson, MicrosoftPlattformarchitekt für Internet Explorer, wurde öffentlich in einer Reihe von Blogs. Wilson warnte, dass die Aktualisierung das Update auf "Brechen des Webs", weil die vorgeschlagenen Änderungen an ECMascript in gewisser Hinsicht in gewisser Hinsicht unvereinbar machten.[24] und dass Stakeholder, die sich gegen die Änderungen aussprachen, "versteckt" wurden.[25] Eich antwortete, indem er erklärte, Wilson schien "die Unwahrheiten in Blogs zu wiederholen", und bestritt, dass es versucht habe, Dissens zu unterdrücken und Kritiker herauszufordern, um spezifische Beispiele für Inkompatibilität zu geben.[26] Er wies darauf hin Microsoft Silverlight und Adobe AIR sich verlassen auf C# und Aktionen 3 jeweils sind beide größer und komplexer als die ECMAScript -Ausgabe 3.[27]
5. Ausgabe - ECMascript 2009
Yahoo, Microsoft, Google und andere Dissens der 4. Ausgabe bildeten ihren eigenen Unterausschuss, um ein weniger ehrgeiziges Update von ECMascript 3 zu entwerfen, das vorläufig ECMascript 3.1 bezeichnet. Diese Ausgabe würde sich auf Sicherheits- und Bibliotheksaktualisierungen konzentrieren, wobei der Schwerpunkt auf Kompatibilität liegt. Nach dem oben genannten öffentlichen Sparring stimmten die Teams von ECMascript 3.1 und ECMascript 4 auf einen Kompromiss zu: Die beiden Ausgaben würden parallel mit Koordination zwischen den Teams und der Sicherstellung, dass ECMAScript 3.1 eine strenge Teilmenge von ECMAScript 4 sowohl in Semantics als auch in Semantics und in Semantics und streng bleibt Syntax.
Die unterschiedlichen Philosophien in jedem Team führten jedoch zu wiederholten Unterbrechungen der Teilmengeregel, und es blieb zweifelhaft, dass die Dissens des ECMAScript 4 in Zukunft jemals ECMAScript 4 unterstützen oder implementieren würden. Nach über einem Jahr seit der Meinungsverschiedenheit über die Zukunft von ECMAScript innerhalb des ECMA -Technischen Komitees 39 erreichten die beiden Teams im Juli 2008 einen neuen Kompromiss: Brendan Eich kündigte an, dass die ECMA TC39 die Arbeit auf das Projekt ECMascript 3.1 (später umbenannt in ECMascript, 5. Ausgabe) konzentrieren würde, mit vollständiger Zusammenarbeit aller Parteien, und die Anbieter würden bis Anfang 2009 mindestens zwei interoperable Implementierungen ansprechen.[28][29] Im April 2009 veröffentlichte ECMA TC39 den "endgültigen" Entwurf der 5. Ausgabe und kündigte an, dass die Testen interoperabler Implementierungen bis Mitte Juli abgeschlossen sein werden.[30] Am 3. Dezember 2009 wurde die ECMA-262 5. Ausgabe veröffentlicht.[31]
Ergänzungen umfassen JSON, String.trim ()
Um einfach die Weißespace zu entfernen, die eine Schnur umgeben (" Beispiel "
zu "Beispiel"
), String.charat ()
um ein einzelnes Zeichen aus einer bestimmten Position in einer Zeichenfolge zurückzugeben, und Array.isArray ()
. Ein Komma nach dem endgültigen Wertepaar in einem Objekt (var Beispiel = {"Property1": "Value1", "Property2": "Value2",}
) verursacht auch keinen Syntaxfehler mehr.[32]
6. Ausgabe - ECMascript 2015
Die 6. Ausgabe, ECMascript 6 (Es6) und später in Ecmascript 2015 umbenannt wurde, wurde im Juni 2015 abgeschlossen.[11][33] Dieses Update fügt eine signifikante neue Syntax für das Schreiben komplexer Anwendungen hinzu, einschließlich Klassenerklärungen (class Foo { ... }
), ES6 -Module mögen import * as moduleName from "..."; export const Foo
definiert sie aber semantisch in den gleichen Begriffen wie ECMAScript 5 Strict -Modus. Weitere neue Funktionen sind Iteratoren und for...of
Schleifen, Python-Stilgeneratoren, Pfeilfunktionsausdruck (() => {...}
), Lassen
Schlüsselwort für lokale Deklarationen, Const
Schlüsselwort für konstante lokale Deklarationen, binäre Daten, typisierte Arrays, neue Sammlungen (Karten, Sätze und Schwächen), Versprechen, Anzahl und mathematische Verbesserungen, Reflexion, Proxys (Metaprogrammierung für virtuelle Objekte und Verpackungen) und Vorlagenliterale Verwenden von Backticks (`
) für Multi-Line-Saiten ohne Flucht Charaktere.[34][35] Die vollständige Liste ist umfangreich.[36][37] Als erste Spezifikation "Ecmascript Harmony" ist es auch als "ES6 Harmony" bezeichnet.
7. Ausgabe - ECMascript 2016
Die 7. Ausgabe oder ECMascript 2016 wurde im Juni 2016 abgeschlossen.[12] Zu den Merkmalen gehören Block-Scoping von Variablen und Funktionen, Zerstörungsmuster (von Variablen). richtige Schwanzaufrufe, Exponentiation Operator **
für Zahlen, erwarten
, Async
Schlüsselwörter für asynchrones Programmieren (als Vorbereitung für ES2017) und die Array.prototype.includes
Funktion.[12][38]
Der Exponentiationsbetreiber entspricht Math.pow
, bietet aber eine einfachere Syntax ähnlich wie Sprachen wie Python, F#, Perl und Ruby. Async
/ erwarten
Wurde als einfachere Möglichkeit, Versprechungen zu verwenden und asynchrone Code zu entwickeln.
8. Ausgabe - ECMascript 2017
Die 8. Ausgabe oder ECMascript 2017 wurde im Juni 2017 abgeschlossen.[13] Die Funktionen umfassen die Object.values
, Object.entries
und Object.getOwnPropertyDescriptors
Funktionen für die einfache Manipulation von Objekten, Async
/ erwarten
Konstruktionen, die Generatoren und Versprechen sowie zusätzliche Funktionen für die Parallelität verwenden und Atomik.[39][13]
9. Ausgabe - ECMascript 2018
Die 9. Ausgabe oder ECMascript 2018 wurde im Juni 2018 abgeschlossen.[14] Zu den neuen Funktionen gehören die Spread Operator und die Ruheparameter (...
) für Objektliterale, asynchrone Iteration, Versprechen.Prototype.Finally
und Ergänzungen zu Regexp.[14]
Der Spread Operator ermöglicht das einfache Kopieren von Objekteigenschaften, wie unten gezeigt.
Lassen Objekt = {a: 1, b: 2} Lassen Objektklon = Objekt.zuordnen({}, Objekt) // vor ES2018 Lassen Objektklon = {...Objekt} // ES2018 Syntax Lassen AndereObject = {c: 3, ...Objekt} Konsole.Protokoll(AndereObject) // -> {c: 3, a: 1, b: 2}
10. Ausgabe - ECMascript 2019
Die 10. Ausgabe oder ECMascript 2019 wurde im Juni 2019 veröffentlicht.[15] Zu den hinzugefügten Funktionen gehören, aber nicht beschränkt auf, Array.Prototype.flat
, Array.prototype.flatmap
, Änderungen an Array.Sort
und Object.Fromentries
.[15]
Array.sort
ist nun garantiert stabil, was bedeutet, dass Elemente mit der gleichen Sortiervorrang in derselben Reihenfolge im sortierten Array erscheinen. Array.Prototype.flat (Tiefe = 1)
Flacht ein Array in eine bestimmte Tiefe, was bedeutet, dass alle Subarray -Elemente (bis zur angegebenen Tiefe) rekursiv verkettet sind.
Eine weitere bemerkenswerte Änderung ist diese sogenannte Bindung fangen wurde optional.[40]
11. Ausgabe - ECMascript 2020
Die 11. Ausgabe oder ECMascript 2020 wurde im Juni 2020 veröffentlicht.[16] Zusätzlich zu neuen Funktionen führt diese Version a ein Bigint
primitiver Typ für zahlreiche Zahlen in beliebiger Größe, die, die Nullish Coalescing -Operator, und die Globalthis -Objekt.[16]
Bigints werden entweder mit dem erstellt BigInt
Konstruktor oder mit der Syntax 10n
, wo "n" nach der Zahl buchstäblich platziert wird. Bigints ermöglichen die Darstellung und Manipulation von Ganzzahlen darüber hinaus Number.MAX_SAFE_INTEGER
, während die Zahlen durch einen 64-Bit-Doppelprezision dargestellt werden IEEE 754 Wert. Die eingebauten Funktionen in Math
sind nicht mit Bigints kompatibel; Zum Beispiel muss die Exponentiation von Bigints mit dem durchgeführt werden **
Bediener statt von Math.pow
.
Der nullische Koalescing -Operator, ??
Gibt seinen rechten Seitenbetrieb zurück, wenn seine linke Seite ist null
oder undefined
. Dies steht im Gegensatz zu dem ||
Betreiber, der zurückkehren würde "string"
für alle "falsy" -Werte, wie z. B. die folgenden.
nicht definiert ? "String" // -> "String" Null ? "String" // -> "String" FALSCH ? "String" // -> falsch Nan ? "String" // -> nan
Die optionale Verkettung ermöglicht es, auf die verschachtelten Eigenschaften eines Objekts zuzugreifen, ohne auf jeder Ebene eine zu haben und zu überprüfen. Ein Beispiel ist const zipcode = person?.address?.zipcode
. Wenn eines der Eigenschaften nicht vorhanden ist, zipcode
wird sein undefined
.
12. Ausgabe - ECMascript 2021
Die 12. Ausgabe oder ECMascript 2021 wurde im Juni 2021 veröffentlicht.[9] Diese Version führt die vor replaceAll
Methode für Zeichenfolgen; Promise.any
, ein Versprechungskombinator, den Kurzschlüsse bei erfülltem Eingabwert erfüllt; AggregateError
, ein neuer Fehlertyp zur Darstellung mehrerer Fehler gleichzeitig; logische Zuweisungsoperatoren (??=
, &&=
, || =
); WeakRef
, um sich auf ein Zielobjekt zu beziehen, ohne es vor der Müllsammlung zu erhalten, und FinalizationRegistry
, um die Registrierung und Unregistrierung von Reinigungsvorgängen zu verwalten, die ausgeführt werden, wenn Zielobjekte Müll gesammelt sind; Separatoren für numerische Literale (1_000
); und Array.prototype.sort
wurde genauer gemacht, wobei die Anzahl der Fälle reduziert wurde, die zu einer implementierungsdefinierten Sortierreihenfolge führen.
Es.Next
ES.Next ist ein dynamischer Name, der sich auf die nächste Version des Schreibens bezieht. Es.Next -Funktionen enthalten fertige Vorschläge (auch bekannt als "Vorschläge der Stufe 4"), wie aufgeführt, Fertiger Vorschläge Das sind nicht Teil einer ratifizierten Spezifikation. Der Sprachausschuss folgt einem "lebenden Spezifikations" -Modell, daher sind diese Änderungen Teil des Standards, und die Ratifizierung ist eine Formalität.
Merkmale
Die ECMascript -Sprache umfasst strukturiert, dynamisch, funktional, und Prototypbasiert Merkmale.[41]
Imperativ und strukturiert
ECMascript JavaScript unterstützt C Stil strukturierte Programmierung. Zuvor unterstützte JavaScript nur Funktionsvorgänge Verwenden des Schlüsselworts var
, aber ECMascript 2015 fügte die Schlüsselwörter hinzu Lassen
und Const
Ermöglichen, dass JavaScript sowohl Block -Scoping- als auch Funktions -Scoping unterstützt. JavaScript unterstützt Automatische SemikoloninsertionDies bedeutet, dass Semikolons, die normalerweise zur Beendigung einer Aussage in C verwendet werden, in JavaScript weggelassen werden können.[42]
Wie Sprachen im C-Stil, Steuerfluss ist mit dem gemacht while
, for
, do
/ while
, if
/ else
, und switch
Aussagen. Funktionen werden schwach tippt und können jede Art akzeptieren und zurückgeben. Argumente, die nicht standardmäßig vorgesehen sind undefined
.
Schwach tippt
Ecmascript ist schwach tippt. Dies bedeutet, dass bestimmte Typen implizit auf der Grundlage der durchgeführten Operation zugeordnet sind. In der Implementierung der Umwandlung einer Variablen von einem Typ zum anderen enthält JavaScript jedoch mehrere Macken. Diese Macken waren Gegenstand eines Vortrags mit dem Titel " Wat.[43][44]
Dynamisch
ECMAScript wird dynamisch typisiert. Somit ist ein Typ eher einem Wert als einem Ausdruck verbunden. ECMascript unterstützt verschiedene Möglichkeiten, um die Art von Objekten zu testen, einschließlich Ententypisierung.[45]
Transporation
Seit ES 2015 ist die Transpilierung von JavaScript sehr häufig geworden. Transpilation ist a Quelle-zu-Source-Zusammenstellung in denen neuere Versionen von JavaScript verwendet werden und ein Transpiler den Quellcode so umschreibt, so dass er von älteren Browsern unterstützt wird. Normalerweise transpilieren Transpiler zu ES3, um die Kompatibilität mit allen Versionen von Browsern aufrechtzuerhalten. Die Einstellungen zur Umsiedlung in eine bestimmte Version können entsprechend den Bedarf konfiguriert werden. Transporing fügt den Build -Prozess einen zusätzlichen Schritt hinzu und wird manchmal durchgeführt, um die Notwendigkeit zu vermeiden Polyfills. Polyfills erstellen neue Funktionen für ältere Umgebungen, denen sie fehlen. Polyfills tun dies zur Laufzeit im Interpreter, wie z. B. der Browser des Benutzers oder auf dem Server. Um den ECMA -Code selbst während der Bauphase der Entwicklung umzuwandeln, bevor er den Dolmetscher erreicht, schreibt sie stattdessen um.
Konformität
Im Jahr 2010 begann ECMA International mit der Entwicklung eines Standard -Tests für ECMA 262 ECMAScript.[46] Test262 ist eine ECMAScript -Konformitätstestsuite, mit der überprüft werden kann, wie genau eine JavaScript -Implementierung der ECMAScript -Spezifikation folgt. Die Testsuite enthält Tausende einzelner Tests, von denen jeweils einige spezifische Anforderungen der ECMAScript -Spezifikation getestet werden. Die Entwicklung von Test262 ist ein Projekt des ECMA Technical Committee 39 (TC39). Der Test -Framework und die einzelnen Tests werden von Mitgliedsorganisationen von TC39 erstellt und haben zur Verwendung in Test262 zur ECMA beigetragen.
Wichtige Beiträge wurden von Google (Sputnik Testsuite) und Microsoft geleistet, die beide Tausende von Tests beigetragen haben. Der Test262 Testsuite bestand aus 38014 Tests im Januar 2020[aktualisieren].[47] ECMAScript-Spezifikationen durch ES7 sind in Major gut unterstützt Internetbrowser. Die folgende Tabelle zeigt die Konformitätsrate für aktuelle Softwareversionen in Bezug auf die neuesten Ausgaben von ECMascript.
Skriptmotor | Referenzanwendung (en) | Konformität[48] | |||
---|---|---|---|---|---|
Es5[49] | ES6 (2015)[50] | ES7 (2016)[51] | Neuere (2017+)[51][52] | ||
Spinnenaffe | Feuerfuchs 94 | 100% | 98% | 100% | 100% |
V8 | Google Chrome 95, Microsoft Edge 95, Oper 80 | 100% | 98% | 100% | 100% |
JavaScriptcore | Safari 15 | 100% | 99% | 100% | 90% |
Siehe auch
- Vergleich von JavaScript -Motoren
- ECMascript für XML (E4x)
- JavaScript
- Jscript
- Liste der ECMascript -Motoren
Verweise
- ^ Stefanov, Stoyan (2010). JavaScript -Muster. O'Reilly Media, Inc. p. 5. ISBN 9781449396947. Archiviert vom Original am 2016-06-10. Abgerufen 2016-01-12.
Die Kern -JavaScript -Programmiersprache [...] basiert auf dem ECMaskript Standard oder kurz.
- ^ Wirfs-Brock, Allen; Eich, Brendan (2020-05-02). "JavaScript: Die ersten 20 Jahre". Verfahren der ACM auf Programmiersprachen. 4: 1–189. doi:10.1145/3386327. S2CID 219603695.
{{}}
: CS1 Wartung: Datum und Jahr (Link) - ^ Guo, Shu-Yu (2022-02-14). "ECMascriptâž 2022 Sprachspezifikation". Tc39.es. TC39.ES. Archiviert vom Original am 2020-05-08. Abgerufen 2022-02-14.
- ^ Krill, Paul (2008-06-23). "JavaScript -Schöpfer überlegt Vergangenheit, Zukunft". Infoworld.com. InfoWorld. Archiviert vom Original am 2014-09-20. Abgerufen 2013-10-31.
- ^ "Netscape und Sun geben JavaScript, die offene, plattformübergreifende Objekt-Skriptsprache für Unternehmensnetzwerke und das Internet an.". Netscape.com. Netscape. 1995-12-04. Archiviert von das Original Am 2002-06-06. Abgerufen 2019-11-04.
- ^ Pressemitteilung (15. November 1996). "Branchenführer, um die Standardisierung des JavaScripts von Netscape bei Standards Body Meeting voranzutreiben". Netscape.com. Netscape. Archiviert von das Original Am 1998-12-03. Abgerufen 2013-10-31.
- ^ Eich, Brendan (2006-10-03). "Wird es ein empfohlenes Dateisuffix für ES4 geben?". Mozilla.org. Mail.mozilla.org. Archiviert vom Original am 2020-06-21. Abgerufen 2021-05-05.
- ^ Maffeis, Sergio; Mitchell, John C.; Taly, Ankur (2020-01-03). "Eine operative Semantik für JavaScript" (PDF). stanford.edu. Verband für Rechenmaschinen. Archiviert (PDF) vom Original am 2020-01-03. Abgerufen 2020-01-03.
- ^ a b c "ECMascript 2021 Sprachspezifikation". ECMA International. Juni 2021. Archiviert vom Original am 2021-06-24. Abgerufen 2021-06-26.
- ^ Archiviert bei Ghostarchive und die Wayback -Maschine: "Änderungen an JavaScript, Teil 1: ECMascript 5". Youtube. 2009-05-18. Abgerufen 2013-10-31.
- ^ a b "ECMascript 2015 Sprachspezifikation". ECMA International. Juni 2015. Archiviert vom Original am 2022-02-14. Abgerufen 2021-06-28.
- ^ a b c "ECMascript 2016 Sprachspezifikation". ECMA International. Juni 2016. Archiviert vom Original am 2022-02-14. Abgerufen 2021-06-28.
- ^ a b c "ECMascript 2017 Sprachspezifikation". ECMA International. Juni 2017. Archiviert vom Original am 2021-01-17. Abgerufen 2021-06-28.
- ^ a b c "ECMascript 2018 Sprachspezifikation". ECMA International. Juni 2018. Archiviert vom Original am 2022-02-14. Abgerufen 2021-06-28.
- ^ a b c "ECMascript 2019 Sprachspezifikation". ECMA International. Juni 2019. Archiviert vom Original am 2022-02-14. Abgerufen 2021-06-28.
- ^ a b c "ECMascript 2020 Sprachspezifikation". ECMA International. Juni 2020. Archiviert vom Original am 2021-01-18. Abgerufen 2021-06-28.
- ^ 2015-03-24 Besprechungsnotizen Archiviert 2017-06-23 bei der Wayback -Maschine. Esdiscuss. Siehe auch ECMA zurückgezogene Standards Archiviert 2015-08-13 bei der Wayback -Maschine. ECMA.
- ^ Hansen, Lars T (2007-10-22). "ES4 -Übersicht veröffentlicht". Mozilla.org. Mail.mozilla.org. Archiviert vom Original am 2013-11-02. Abgerufen 2013-10-31.
- ^ Pyrott, Sebastian (2021-03-04). "Die wirkliche Geschichte hinter ECMascript 4". auth0.com. Archiviert vom Original am 2020-05-12. Abgerufen 2020-03-05.
- ^ "Vorgeschlagene ECMascript 4. Ausgabe - Sprachübersicht" (PDF). ecmascript.org. 23. Oktober 2007. archiviert von das Original (PDF) am 23. Dezember 2010.
- ^ John Resig. "John Ressig - Fehlerbehebungen in JavaScript 2". Ejohn.org. Archiviert vom Original am 2013-11-02. Abgerufen 2013-10-31.
- ^ "Kompatibilität zwischen ES3 und vorgeschlagenem ES4" (PDF). Ecmascript.org. Archiviert von das Original (PDF) Am 2014-07-24. Abgerufen 2013-10-31.
- ^ "ECMascript -Sprachspezifikation" (PDF). ECMA International. 2009-04-19. Archiviert von das Original (PDF) am 2009-04-19. Abgerufen 2018-03-19.
- ^ "ECMascript 3 und darüber hinaus - IEBLOG - Site Home - MSDN Blogs". Blogs.msdn.com. 2007-10-30. Archiviert vom Original am 02.02.2010 Uhr. Abgerufen 2013-10-31.
- ^ "Was ich über ES4 denke. - Albatross! - Site Home - MSDN Blogs". Blogs.msdn.com. 2007-10-31. Archiviert vom Original am 01.01.2010 Uhr. Abgerufen 2013-10-31.
- ^ "Offener Brief an Chris Wilson". Brendan Eich. 2007-10-31. Archiviert vom Original am 2011-09-16. Abgerufen 2013-10-31.
- ^ "JavaScript 2 und das offene Web". 2007-11-20. Archiviert vom Original am 2014-02-10. Abgerufen 2014-01-20.
- ^ "ECMASScript -Harmonie". Mail.mozilla.org. Archiviert vom Original am 2013-08-26. Abgerufen 2013-10-31.
- ^ "Ein großer Meilenstein in der JavaScript -Standardisierung - JScript -Blog - Site Home - MSDN -Blogs". Blogs.msdn.com. 2009-04-09. Archiviert vom Original am 2010-03-23. Abgerufen 2013-10-31.
- ^ "ECMA International ist die wichtigste Überarbeitung von ECMascript ab". ECMA International. 2009-04-09. Archiviert vom Original am 09.09.2011. Abgerufen 2009-05-22.
- ^ "ECMA frühere Nachrichten". ECMA-international.org. Archiviert vom Original am 2020-04-16. Abgerufen 2020-03-29.
- ^ JavaScript -Versionen Von W3schools
- ^ Krill, Paul. "Es ist offiziell: ECMascript 6 ist genehmigt". InfoWorld. Archiviert vom Original am 2018-03-23. Abgerufen 2018-03-19.
- ^ "5 großartige Merkmale in ECMAScript 6 (ES6 Harmony) - Wintellect". Wintellect. 2014-03-24. Archiviert von das Original Am 2017-07-22. Abgerufen 2018-03-19.
- ^ "ECMascript 6 (ES6): Was ist neu in der nächsten Version von JavaScript". Smashing Magazine. 2015-10-28. Archiviert vom Original am 2017-11-24. Abgerufen 2018-03-19.
- ^ "ECMascript 6: Neue Funktionen: Übersicht und Vergleich". ES6-features.org. Archiviert vom Original am 2018-03-18. Abgerufen 2018-03-19.
- ^ "Standard ECMA-262 6. Ausgabe / Juni 2015 ECMASScript 2015 Sprachspezifikation 14.2 Pfeilfunktionsdefinitionen". www.ecma-international.org. 2015. Archiviert vom Original am 2022-02-14. Abgerufen 2021-06-28.
- ^ Saboff, Michael (2016-05-23). "ECMascript 6 Richtige Schwanzaufrufe in Webkit". Webkit. Archiviert vom Original am 2019-04-11. Abgerufen 2019-04-11.
- ^ "ECMascript 2017 (ES8): Das endgültige Feature -Set". 2alität. Archiviert vom Original am 2018-04-23. Abgerufen 2018-04-23.
- ^ "ES2019: Optionale Catch -Bindung". 2ity.com. 2017-08-13. Abgerufen 26. April 2022.
- ^ "Um". ECMaskript. Archiviert von das Original am 2012-08-02. Abgerufen 2009-12-17.
- ^ David Flanagan (17. August 2006). JavaScript: Der endgültige Handbuch: Der endgültige Handbuch. "O'Reilly Media, Inc.". p. 16. ISBN 978-0-596-55447-7. Archiviert vom Original am 1. August 2020. Abgerufen 11. November 2019.
- ^ Bernhardt, Gary. Wat. Codemash 2012. Zerstöre alle Software. Archiviert vom Original am 2019-10-28. Abgerufen 2021-08-18.
- ^ Gilbertson, Scott (26. Januar 2012). "Witze für Nerds: Wat Momente in der Programmierung". Verdrahtet. Archiviert vom Original am 23. August 2020. Abgerufen 22. August 2021.
- ^ "JavaScript -Datentypen und Datenstrukturen - JavaScript | Mdn". Entwickler.mozilla.org. 2017-02-16. Archiviert vom Original am 2017-03-14. Abgerufen 2017-02-24.
- ^ "ECMascript -Sprache - Test262". Test262.ecmascript.org. Archiviert von das Original Am 2011-05-14. Abgerufen 2013-10-31.
- ^ "TC39/Test262". GitHub. 24. Januar 2020. Archiviert Aus dem Original am 1. Oktober 2019. Abgerufen 29. Januar, 2020.
- ^ ES5 ist die Grundlinie für diese Testsuite. Die Konformitätsrate für andere Ausgaben spiegelt die Unterstützung nur für neue Funktionen wider, nicht für eine umfassende Punktzahl.
- ^ "ECMascript 5 Kompatibilitätstabelle". Kangax.github.io. Archiviert vom Original am 2018-11-19. Abgerufen 2018-11-08.
- ^ "ECMascript 6 Kompatibilitätstabelle". Kangax.github.io. Archiviert vom Original am 2018-11-17. Abgerufen 2018-11-08.
- ^ a b "ECMAScript 2016+ Kompatibilitätstabelle". Kangax.github.io. Archiviert vom Original am 2018-11-24. Abgerufen 2018-11-08.
- ^ Zusammengesetzte Punktzahl, der neue Funktionen von ES7 bis Next Edition enthält Entwürfe
Externe Links
ISO -Standards
ECMA -Standards
- ECMascript -Sprachspezifikation
- 3. Ausgabe, Dezember 1999: PDF
- Ausgabe 3 Finale, März 2000: PDF
- 4. Ausgabe (Übersicht): PDF
- 4. Ausgabe (endgültiger Entwurf): Html, PDF
- 5. Ausgabe, Dezember 2009: PDF
- 5.1 Ausgabe, Juni 2011: Html, PDF
- 6. Ausgabe, Juni 2015 (Sprachspezifikation von ECMascript 2015): Html, PDF
- 7. Ausgabe, Juni 2016 (Sprachspezifikation von ECMascript 2016): Html, PDF
- 8. Ausgabe, Juni 2017 (ECMASScript 2017 Sprachspezifikation): Html, PDF
- 9. Ausgabe, Juni 2018 (ECMASScript 2018 Sprachspezifikation): Html,PDF
- 10. Ausgabe, Juni 2019 (ECMASScript 2019 Sprachspezifikation): Html,PDF
- 11. Ausgabe, Juni 2020 (Sprachspezifikation von ECMascript 2020): Html,PDF
- 12. Ausgabe, Juni 2021 (ECMAScript 2021 Sprachspezifikation): Html,PDF
- ECMA-290 ECMASScript-Komponentenspezifikation (Juni 1999)
- ECMA-327 ECMascript 3. Ausgabe Kompaktprofil (Juni 2001)
- ECMA-357 ECMAScript für XML (E4X) Spezifikation (Juni 2004)