Heim >Web-Frontend >js-Tutorial >ES6 (ES2015) und darüber hinaus: JavaScript -Versioning verstehen

ES6 (ES2015) und darüber hinaus: JavaScript -Versioning verstehen

William Shakespeare
William ShakespeareOriginal
2025-02-15 12:13:11216Durchsuche

ES6 (ES2015) and Beyond: Understanding JavaScript Versioning

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

  • ES6 (auch als ES2015 bekannt) markiert eine große Verschiebung des JavaScript -Versionsmanagements, in der Funktionen wie Klassen, Versprechen, Pfeilfunktionen, ES -Module, Generatoren und Iteratoren eingeführt werden. Dies ist ein wichtiges Fundament -Update, das die Grundlage für zukünftige jährliche kleine JavaScript -Versionsaktualisierungen bildet.
  • ES2015 legt einen Vorschlagsbasis TC39-Prozess zur Diskussion und Übernahme neuer Sprachmerkmale fest. Dieser Prozess besteht aus fünf Stufen: Strawman (Vorwort), Vorschlag (Vorschlag), Entwurf (Entwurf), Kandidat (Kandidat) und fertiggestellt (fertig).
  • Nach ES2015 werden die nachfolgenden Versionen jeden Juni veröffentlicht, und ES2016 (ES7) und ES2017 (ES8) führen inkrementelle Funktionen und Verbesserungen ein. ES2018 führt einige leistungsstarke neue Funktionen wie asynchrone Iteratoren sowie Objektexpansion und Resteigenschaften ein.
  • 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.

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:

  • Kategorie
  • Versprechen
  • Pfeilfunktion
  • es Modul
  • Generator und Iterator

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.

Stufe 0: Strawman (Vorwort)

Dies ist ein bequemer Schritt, der die Einreichung von Ideen in die Spezifikation ermöglicht. Jeder kann Feature-Vorschläge machen-d.h.

Stufe 1: Vorschlag (Vorschlag)

Die erste Phase der Formalisierung des Vorschlags. Muss:

  • Beschreiben Sie alle vorhandenen Probleme, die durch diese Lösung korrigiert wurden
  • bietet API -Übersicht sowie erweiterte Implementierungsdetails sowie Polyfills und/oder Demonstrationen
  • Diskutieren Sie potenzielle Hindernisse im Voraus

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)

Dies ist ein Meilenstein, dass diese Funktion in zukünftigen ECMAScript -Veröffentlichungen enthalten sein kann. Hier werden die Syntax und die Semantik des Vorschlags unter Verwendung der formalen Sprache beschrieben, die durch die Spezifikation beschrieben wird. Zu diesem Zeitpunkt sollte eine experimentelle Implementierung bereitgestellt werden.

Stufe 3: Kandidat (Kandidat)

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.

Stufe 4: fertig (abgeschlossen)

Dieser Vorschlag wurde akzeptiert und kann zu ECMascript hinzugefügt werden. Daher ist es von Natur aus:

  • Akzeptanztests für einen Teil des in JavaScript geschriebenen test262 Suite wurden geschrieben, um die Einhaltung und das Verhalten des Features zu demonstrieren
  • mindestens zwei konforme Implementierungen sind verfügbar und veröffentlicht, die alle ihre Robustheit und die Verfügbarkeit von Entwicklern
  • beweisen.
  • Die Pull-Anfrage wurde an die offizielle ECMA-262-Codebasis übermittelt und von der Spezifikationsbearbeitung unterzeichnet.

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.

ES2016

Auch als ES7 bekannt, ist dies die erste kleinere, inkrementelle Version von ECMascript. Neben Fehlerbehebungen werden nur zwei Funktionen hinzugefügt.

array.prototype.includes

Diese Beispielmethode vereinfacht den Betrieb der Suche nach Werten in einem Array:
<code class="language-javascript">// ES2016 之前:
const hasBob = names.indexOf('bob') > -1;

// ES2016:
const hasBob = names.includes('bob');</code>

Exponent -Operator

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:
<code class="language-javascript">// ES2016 之前
Math.pow(5, 3); // => 125

// ES2016
5 ** 3; // => 125</code>

ES2017

ES2017 (auch bekannt als ES8) ist eine etwas größere Version, die einige nützliche Methoden und Syntaxstrukturen enthält.

asynchronisierte Funktion

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:
<code class="language-javascript">// 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;
};</code>

String -Füllmethode

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:
<code class="language-javascript">'foo'.padStart(6);          // => '   foo';
'foo'.padEnd(6);            // => 'foo   ';
'foo'.padStart(10, 'bar');  // => 'barbarbfoo';
'foo'.padEnd(10, 'bar');    // => 'foobarbarb';</code>

Andere Merkmale umfassen nachverfolgte Kommas, gemeinsam genutzte Speicher- und Atomoperationen sowie statische Objektmethoden (Object.entries (), Object.Values ​​() und Object.getownPropertyDescriptors ()).

ES2018

Zum Zeitpunkt des Schreibens führt diese neueste Version eine kleine Anzahl leistungsstarker neuer Funktionen vor.

asynchronisiertes Iterator

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:
<code class="language-javascript">// ES2016 之前:
const hasBob = names.indexOf('bob') > -1;

// ES2016:
const hasBob = names.includes('bob');</code>

Objekt erweitert und verbleibende Eigenschaften

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:

<code class="language-javascript">// ES2016 之前
Math.pow(5, 3); // => 125

// ES2016
5 ** 3; // => 125</code>

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

Was ist der Hauptunterschied zwischen 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.

Warum ES6 in ES2015 umbenennen?

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.

Welche Schlüsselfunktionen werden in ES6/ES2015 eingeführt?

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 Wie verbessert man die JavaScript -Codierung?

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.

Wie beginnt ich mit der Funktion ES6/ES2015 in meinem JavaScript -Code?

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.

Gibt es Probleme mit ES6/ES2015?

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.

Was ist der Unterschied zwischen JavaScript und ECMascript?

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.

Was ist die Zukunft von JavaScript nach ES6/ES2015?

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.

Wie besteht die Beziehung zwischen TypeScript und ES6/ES2015?

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.

Was sind die Vorteile der Verwendung von ES6/ES2015 als frühere Versionen von JavaScript?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn