Javascrip{filter}t hat eine sehr seltsame Namensgeschichte.
Es wurde erstmals 1995 als Teil des Netscape Navigator veröffentlicht, was der neuen Sprache den Namen Livescrip{filtering}t gab. Ein Jahr später, um den damaligen Medienhype um Java zu verfolgen, wurde der Name vorübergehend in Javascrip{filtering}t geändert (natürlich ist die Beziehung zwischen Java und Javascrip{filtering}t dieselbe wie die von Lei Feng und Lei Feng Tower – das hat damit nichts zu tun).
Der Crooked-Nut-Witz ist überhaupt nicht lustig
Anmerkung des Übersetzers: Der Javascrip{filter}t-Eintrag auf Wikipedia beschreibt diese Geschichte ausführlicher
1996 reichte Netscape Javascrip{filtering}t bei ECMA International (European Computer Manufacturers Association) zur Standardisierung ein und finalisierte schließlich einen neuen Sprachstandard, nämlich ECMAscrip{filtering}t. Seitdem ist ECMAscrip{filtering}t die Grundlage für alle Javascrip{filtering}t-Implementierungen, allerdings aus historischen und marktwirtschaftlichen Gründen (offenbar ist ECMAscrip{filtering}t kein angenehmer Name...... In Wirklichkeit verwenden wir ECMAscrip{filter}t nur, um den Standard aufzurufen, und normalerweise verwenden wir Javascrip{filter}t, um diese Sprache aufzurufen.
Terminologie:
- Standard: Ein Regelwerk, das definiert, was es von anderen Dingen unterscheidet
- Implementierung: Die spezifische Implementierung/praxisnahe Praxis eines Standards
Javascrip{filtering}t-Entwickler kümmern sich jedoch nicht besonders darum, denn ECMAscrip{filtering}t hat sich in den 15 Jahren seit seiner Einführung kaum verändert und viele reale Implementierungen unterscheiden sich bereits stark vom Standard. Tatsächlich wurden nach der Veröffentlichung der ersten Version von ECMAscrip{filtering}t kurz darauf zwei weitere Versionen veröffentlicht, aber seit der Veröffentlichung von ECMAscrip{filter}t 3 im Jahr 1999 wurden seit zehn Jahren keine Änderungen mehr an der offiziellen Spezifikation hinzugefügt. Stattdessen versuchen Browserhersteller, ihre eigenen Sprachen zu erweitern, sodass Webentwickler keine andere Wahl haben, als mit diesen APIs zu experimentieren und diese zu unterstützen. Selbst nach der Veröffentlichung von ECMAscrip{filter}t 5 im Jahr 2009 dauerte es mehrere Jahre, bis diese neuen Spezifikationen breite Unterstützung durch Browser fanden, doch die meisten Entwickler schrieben dennoch ECMAscrip{filtering}t 3-ähnlichen Code und sahen keinen Bedarf mehr, sich damit zu beschäftigen.
Anmerkung des Übersetzers: Der Entwurf von ECMAscrip{filter}t Version 4 wurde verworfen, weil er zu aggressiv war, und Adobes Actionscrip{filtering}t 3.0 ist die einzige Implementierung von ECMAscrip{filtering}t edition 4 (Flash hat das Web fast vereint)
Bis 2012 begannen sich plötzlich die Dinge zu verändern. Es gibt eine Push-to-End-Unterstützung für ältere IE-Versionen, und es ist machbarer, Code im Stil von ECMAscrip{filter}t 5 (ES5) zu schreiben. Gleichzeitig wird eine neue ECMAscrip{filtering}t-Spezifikation eingeführt. An diesem Punkt gewöhnten sich die Leute daran, verschiedene Javascrip{filtering}t-Implementierungen im Hinblick auf Versionsunterstützung für die ECMAscrip{filter}t-Spezifikation zu beschreiben. Dieser neue Standard wurde ursprünglich ES genannt. Harmonie. Im Jahr 2015 beschloss TC39, das für die Entwicklung des Entwurfs der ECMAscrip{filter}t-Spezifikation zuständige Komitee, das System zur Definition neuer Standards auf einmal pro Jahr zu ändern, was bedeutet, dass jede neue Funktion nach ihrer Genehmigung hinzugefügt werden kann, anstatt dass die vorherige Spezifikation erst nach Abschluss des gesamten Entwurfs und der Funktionsbereitstellung finalisiert wird. Daher wurde ECMAscrip{filtering}t Version 6 vor der Veröffentlichung im Juni in ECMAscrip{filtering}t 2015 (ES2015) umbenannt.
Es werden immer noch viele neue Javascrip{filter}t-Funktionen oder Syntax vorgeschlagen, darunter Decorators, async-await- und statische Klasseneigenschaften. Sie werden oft als ES7, ES2016 oder ES bezeichnet. Als Nächstes, aber tatsächlich können sie nur als Vorschläge oder Möglichkeiten bezeichnet werden, schließlich ist die ES2016-Spezifikation noch nicht abgeschlossen, und es ist möglich, dass alle eingeführt werden oder keiner. TC39 unterteilt einen Vorschlag in 4 Phasen, und Sie können auf der Website von Babel nachsehen, in welcher Phase sich jeder Vorschlag befindet.
Wie verwenden wir also diese Terminologie? Die folgende Liste kann Ihnen helfen:
- ECMAscrip{filter}t: Eine Sprache, die von ECMA International standardisiert und vom TC39-Komitee überwacht wird. Oft wird er verwendet, um sich auf den Standard selbst zu beziehen.
- Javascrip{filtering}t: Der gebräuchlichste Name für verschiedene Implementierungen des ECMAscrip{filtering}t-Standards. Dieser Begriff ist nicht auf eine spezifische Version der ECMAscrip{filtering}t-Spezifikation beschränkt und kann für jeden unterschiedlichen Grad der Implementierung jeder Version von ECMAscrip{filtering}t verwendet werden.
- ECMAscrip{filtering}t 5 (ES5): Die fünfte Ausgabe von ECMAscrip{filtering}t, standardisiert 2009. Diese Spezifikation ist in allen modernen Browsern ziemlich vollständig implementiert.
- ECMAscrip{filter}t 6 (ES6) / ECMAscrip{filter}t 2015 (ES2015): Die sechste Ausgabe von ECMAscrip{filtering}t wurde 2015 überarbeitet und standardisiert. Dieser Standard ist teilweise in den meisten modernen Browsern implementiert. Sie können diese Kompatibilitätstabelle konsultieren, um zu sehen, wie verschiedene Browser und Tools implementiert sind.
- ECMAscrip{filter}t 2016: Die erwartete siebte Auflage der ECMAscrip{filter}t-Revision, geplant für nächsten Sommer. Die spezifischen Merkmale, die in diese Spezifikation aufgenommen werden, sind noch nicht finalisiert
- ECMAscrip{filter}t-Vorschläge: Feature- und Syntaxvorschläge, die für zukünftige Versionen des ECMAscrip{filter}t-Standards in Betracht gezogen werden, durchlaufen fünf Stufen: Strohmann, Vorschlag, Entwurf, Kandidat und Fertiggestellt.
Im gesamten Blog werde ich die aktuelle Version von ECMAscrip{filtering}t als ES6 bezeichnen (weil das die meisten Entwickler am meisten gewohnt sind), die Spezifikation des nächsten Jahres als ES2016 (weil dieser Name im Gegensatz zu ES6/ES2015 im gesamten Standardisierungsprozess verwendet wird) und zukünftige Sprachkonzepte, die noch nicht finalisiert oder entworfen sind, ECMAscrip{filtering}t-Vorschläge oder Javascrip{filter}t Vorschlag. Ich werde mein Bestes tun, diesen Artikel bei jeder Gelegenheit zu folgen, die zu Verwirrung führen könnten.