In den letzten Jahren ist die Entwicklung von JavaScript gestiegen. Jedes Jahr werden neue ECMascript-Spezifikationen veröffentlicht, wodurch JavaScript-Versionsmanagement, Funktionsunterstützung für jede Version und das Schreiben von zukunftsorientiertem Code verwirrend ist.
Um die Gründe für diese scheinbar kontinuierliche Welle von Updates besser zu verstehen, lesen wir kurz die Geschichte von JavaScript und seinen Versionen und verstehen Sie, warum der Standardisierungsprozess so wichtig ist.
Schlüsselpunkte
Frühgeschichte des JavaScript -Versionsmanagements
Der Prototyp von JavaScript wurde im Mai 1995 in nur zehn Tagen von Brendan Eich geschrieben. Er wurde zunächst für die Implementierung der Runtime für Netscape Navigator rekrutiert, aber das Management-Team drängte darauf, eine C-Art-Sprache zu verwenden, um die damals neue Java zu ergänzen.
JavaScript debütierte im Dezember 1995 in Netscape Navigator Version 2. Im folgenden Jahr erstellte Microsoft Reverse Reverse JavaScript und erstellte eine eigene Version namens JScript. JScript mit dem Internet Explorer Browser Version 3 veröffentlicht und ist fast genau das gleiche wie JavaScript-auch einschließlich der gleichen Fehler und Macken-, aber es gibt einige zusätzliche Internet-Explorer-spezifische Funktionen.
Die Geburt von ECMascript
Die Notwendigkeit, sicherzustellen, dass Jscript (und alle anderen Varianten) mit JavaScript kompatibel bleibt, fordert Netscape und Sun Microsystems auf, die Sprache zu standardisieren. Sie taten dies mit Hilfe der Europäischen Vereinigung der Computerhersteller (ECMA), die für die Hosting des Standards verantwortlich sein wird. Die standardisierte Sprache wird als ECMAScript bezeichnet, um eine Verletzung der Java -Marken von Sun zu vermeiden - ein Schritt, der einiges an Verwirrung verursacht hat. Letztendlich wird ECMascript verwendet, um auf die Spezifikation zu verweisen, während JavaScript (und dennoch) verwendet wird, um auf die Sprache selbst zu verweisen.
Die Arbeitsgruppe, die für JavaScript -Versionsmanagement und Wartung von ECMascript verantwortlich ist, wird als Technischer Komitee 39 oder TC39 bezeichnet. Es besteht aus Vertretern aller wichtigen Browser -Anbieter wie Apple, Google, Microsoft und Mozilla sowie eingeladenen Experten und Vertretern anderer Unternehmen, die sich für Webentwicklung interessieren. Sie halten regelmäßige Sitzungen ab, um die Richtung der Sprache zu bestimmen.
Als JavaScript 1997 durch TC39 standardisiert wurde, wurde die Spezifikation als ECMAScript -Version 1 bezeichnet. Anfänglich wurden nachfolgende Versionen von ECMascript jährlich veröffentlicht, wurden jedoch aufgrund des Mangels an Konsens und einer großen Anzahl von Merkmalen, die mit ECMAScript 4 schwer zu verwalten waren, jedoch sporadisch. Die Version wurde also beendet und auf 3,1 eingeschränkt, aber nicht mit diesem Namen abgeschlossen, sich jedoch schließlich zu ECMascript 5 entwickelt. Es wurde im Dezember 2009 veröffentlicht, 10 Jahre nach der Veröffentlichung von ECMascript 3 und führte Funktionen wie die JSON -Serialisierungs -API, Funktion.Prototype.bind und den strengen Modus ein. Zwei Jahre später wurde eine Wartungsversion veröffentlicht, um die Unklarheit in der neuesten Iteration 5.1 zu klären.
ECMASScript 2015 und jährliche Wiederholungen
Als TC39 die durch ECMAScript 4 verursachte Meinungsverschiedenheit auflöst, betonte Brendan Eich die Notwendigkeit einer kürzeren, kleineren Freisetzung. Die erste dieser neuen Spezifikationen ist ES2015 (ursprünglich ECMAScript 6 oder ES6). Diese Veröffentlichung ist ein großer, aber notwendiger Eckpfeiler, der zukünftiges jährliches JavaScript -Release -Management unterstützt. Es enthält viele Merkmale, die viele Entwickler heute sehr lieben, wie:
ES2015 ist die erste Version, die dem TC39-Prozess folgt, ein modellbasiertes Modell zur Diskussion und Übernahme von Sprachmerkmalen.
TC39 Prozess
Es muss fünf Stufen durchlaufen, bevor der Vorschlag in die bevorstehende ECMAScript -Version aufgenommen wird.
Dies ist ein bequemer Schritt, der die Einreichung von Ideen in die Spezifikation ermöglicht. Jeder kann Feature-Vorschläge machen-d.h.
Die erste Phase der Formalisierung des Vorschlags. Muss:
Eine verantwortliche Person muss ausgewählt werden, um den Vorschlag zu übernehmen und voranzutreiben. Diese Person muss ein TC39 -Mitglied sein. Stufe 2: Entwurf (Entwurf)
Hier wurden die meisten Inhalts- und Support -Technologien des Vorschlags entwickelt, aber weitere Feedback von Benutzern und Implementierern (wie Browserherstellern). Sobald erledigt und Maßnahmen ergriffen werden, werden die Details zur Zusammenfassung und des Spezifikationsdetails vom festgelegten Rezensenten und dem bestimmten Redakteur abgeschlossen und unterschrieben. Da diese Phase eine konsistente Umsetzung erfordert, werden danach nur kritische Änderungen akzeptiert.
Dieser Vorschlag wurde akzeptiert und kann zu ECMascript hinzugefügt werden. Daher ist es von Natur aus:
Die oben genannte Dokumentation der obigen Code -Basis -Beitragsunterlagen finden Sie weiter in der Verwendung von GitHub -Problemen und Anfragen zur Verwaltung der Hinzufügung von Sprachen.
Ich freue mich nach vorne
Nach Abschluss des JavaScript -Versionsverwaltungs- und Update -Prozesses für ES2015 und der Einrichtung von TC39 werden nachfolgende Versionen jeden Juni veröffentlicht, wobei der Vorschlag für ein Jahr enthalten ist. Zum Zeitpunkt des Schreibens gibt es bereits drei neue Spezifikationen.
Auch als ES7 bekannt, ist dies die erste kleinere, inkrementelle Version von ECMascript. Neben Fehlerbehebungen werden nur zwei Funktionen hinzugefügt.
Diese Beispielmethode vereinfacht den Betrieb der Suche nach Werten in einem Array:
// ES2016 之前: const hasBob = names.indexOf('bob') > -1; // ES2016: const hasBob = names.includes('bob');
Vor ES2016 kann der Exponentenbetrieb mit Math.Pow (Basis, Exponent) durchgeführt werden. Diese Version führt einen Operator (**) vor, der eine eigene Priorität hat:
// ES2016 之前 Math.pow(5, 3); // => 125 // ES2016 5 ** 3; // => 125
ES2017 (auch bekannt als ES8) ist eine etwas größere Version, die einige nützliche Methoden und Syntaxstrukturen enthält.
Versprechen hat uns aus Callback Hell gerettet, aber ihre APIs zeigen immer noch ausführlich. Asynchrone Funktionen abstrakt sie mit synchronen Codes ab, die Synchroncodes sehr ähnlich sind:
// Promise const getProfile = name => { return fetch(`https://some-api/people/${name}`) .then(res => res.json()) .then(({ profile }) => profile); // 从解析的对象中解构 `profile` }; // async/await const getProfile = async name => { const res = await fetch(`https://some-api/people/${name}`); const { profile } = await res.json(); return profile; };
string.prototype.padStart (Länge, Padder) und Padend (Länge, Padder) werden wiederholt Padder am Anfang und am Ende der Zeichenfolge hinzufügen (dies ist optional, Standardeinstellungen zu Leerzeichen), bis die Längenzeichen erreicht sind:
'foo'.padStart(6); // => ' foo'; 'foo'.padEnd(6); // => 'foo '; 'foo'.padStart(10, 'bar'); // => 'barbarbfoo'; 'foo'.padEnd(10, 'bar'); // => 'foobarbarb';
Andere Merkmale umfassen nachverfolgte Kommas, gemeinsam genutzte Speicher- und Atomoperationen sowie statische Objektmethoden (Object.entries (), Object.Values () und Object.getownPropertyDescriptors ()).
Zum Zeitpunkt des Schreibens führt diese neueste Version eine kleine Anzahl leistungsstarker neuer Funktionen vor.
Während Versprechen.All () können Sie auf die Analyse mehrerer Versprechen warten, in einigen Fällen müssen Sie möglicherweise die asynchronen Werte iterieren. Sie können jetzt mit dem Versprechen -Array auf den asynchronen Iterator warten: <🎜>
// ES2016 之前: const hasBob = names.indexOf('bob') > -1; // ES2016: const hasBob = names.includes('bob');
Auf der Oberfläche sind diese beiden Syntaxverbesserungen bei JavaScript -Entwicklern aufgrund der Verfügbarkeit von Compilern wie Babel beliebt geworden. Objektexpansion und Resteigenschaften ähneln der Array -Expansion und den Resteigenschaften und ermöglichen eine flache Kopier- und Gruppierung der Dekonstruktion von Objekteigenschaften:
// ES2016 之前 Math.pow(5, 3); // => 125 // ES2016 5 ** 3; // => 125
Andere anerkannte Vorschläge umfassen Promise.Prototype.Finally () sowie Verbesserungen zu regulären Ausdrücken und Vorlagenliteralen.
Schlussfolgerung
JavaScript hat sich in sehr kurzer Zeit stark entwickelt. Dies ist zwar auf die hervorragende Arbeit des ECMascript -Standards und TC39 zurückzuführen, aber es war zunächst eine mühsame Reise aufgrund des Mangels an Stabilität und Zusammenhalt in früheren JavaScript -Versionsmanagement und -entwicklung.
Da der Vorschlagsprozess relativ reif ist, kann die Sprache nur pragmatischer und kontrollierbarer Weise verbessert werden. Dies ist eine großartige Zeit für Webentwickler!
FAQs über JavaScript -Versionsverwaltung: ES6 und ES2015
ES6 und ES2015 sind im Wesentlichen gleich. ES6 ist die sechste Ausgabe der ECMAScript -Programmiersprache international standardisiert von ECMA. ES2015 ist nur der neue Name für ES6 und spiegelt das Jahr wider, in dem es veröffentlicht wurde. Umbenennungen sollen das Veröffentlichungsjahr widerspiegeln und die Versionsnummer beseitigen, was verwirrend sein kann.
in ES6 in ES2015 umbenannt, um das Veröffentlichungsjahr widerzuspiegeln und die Versionsnummer zu beseitigen. Dieser Schritt besteht darin, Verwirrung zu vermeiden und zu demonstrieren, dass JavaScript eine dynamische Sprache ist, die ständig aktualisiert und verbessert wird. Neue Namenskonventionen tragen auch dazu bei, die Regelmäßigkeit von Sprachaktualisierungen und -verbesserungen anzuzeigen.
ES6/ES2015 führt viele neue Funktionen für JavaScript ein, einschließlich let
und const
für variable Deklarationen, Pfeilfunktionen für kürzere Funktionssyntax, Vorlagenliterale für die String-Interpolation, für objektorientierte Programmierklassen, Versprechen für Asynchronous-Programmierungen, Module für die Codeorganisation und so weiter.
ES6/ES2015 verbessert die JavaScript -Codierung auf verschiedene Weise. Es führt neue Syntax und Funktionen ein, die die Sprache leistungsfähiger und einfacher zu verwenden. Beispielsweise bieten Pfeilfunktionen eine sauberere Syntax für das Funktionsschreiben, während Versprechen die Handhabung asynchroner Operationen erleichtert. Die Einführung von Modulen hilft auch dabei, den Code besser zu organisieren und die Verwaltung und Wartung einfacher zu machen.
Um mit der Funktion ES6/ES2015 im JavaScript -Code zu beginnen, können Sie einen Übersetzer wie Babel verwenden, der ES6 -Code in ES5 -Code umwandelt, der im aktuellen Browser ausgeführt werden kann. Sie können auch einen Modulpacker wie WebPack verwenden, um Ihre JavaScript -Module zu verwalten und zu bündeln.
Während die meisten Merkmale von ES6/ES2015 von den meisten modernen Browsern unterstützt werden, gibt es möglicherweise einige Kompatibilitätsprobleme mit älteren Browsern. Um die Kompatibilität zu gewährleisten, können Sie Polyfill verwenden, was Funktionen bietet, die Sie von Ihrem Browser native Unterstützung erwarten.
JavaScript ist eine Programmiersprache, die ursprünglich von Netscape entwickelt wurde. ECMascript ist eine JavaScript -Standardversion, die international durch ECMA standardisiert wird. JavaScript implementiert ECMAScript, was bedeutet, dass die im ECMAScript -Standard definierten Regeln und Strukturen folgen.
Nach ES6/ES2015 wird sich JavaScript weiterentwickeln, wobei jedes Jahr neue Versionen veröffentlicht werden, und jede Version führt zu neuen Funktionen und Verbesserungen. Die Zukunft von JavaScript kann stärkere Funktionen, eine bessere Leistung und eine höhere Kompatibilität auf verschiedenen Plattformen und Geräten sehen.
TypeScript ist ein Superet von JavaScript, das der Sprache statische Typen hinzufügt. Es unterstützt alle Funktionen von ES6/ES2015 und sogar einige zusätzliche Funktionen, die nicht in JavaScript zu finden sind. Der Typscript -Code wird in JavaScript übersetzt, sodass er in jeder JavaScript -Umgebung ausgeführt wird.
Die Verwendung von ES6/ES2015 bietet viele Vorteile im Vergleich zu früheren Versionen von JavaScript. Es führt neue Syntax und Funktionen ein, die die Sprache leistungsfähiger und einfacher zu verwenden. Es verbessert auch die Codeorganisation und die Wartbarkeit und bietet bessere Unterstützung für komplexe Anwendungen und große Codebasis.
Das obige ist der detaillierte Inhalt vonES6 (ES2015) und darüber hinaus: JavaScript -Versioning verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!