Was hat es mit Javascript-Versionen auf sich?

Die Javascript-Welt kann eine verwirrende Welt sein. Man spricht von ECMAScript, Javascript, ES5 und ES2015 (was übrigens dasselbe ist wie ES6).

In diesem Artikel werde ich die Javascript-Landschaft erklären.

Javascript Yellow – Photo by Joseph Gruenthal on Unsplash

ECMAScript ist eine Sprachspezifikation, und Javascript implementiert diese Spezifikation.

Alle paar Jahre veröffentlicht ECMAScript eine neue Version. Grundsätzlich enthält die neue Version eine Liste von neuen Funktionen, die hinzugefügt werden sollen.

Zum Beispiel könnte es in der neuen ECMAScript-Version eine neue Funktion geben: add(), die zwei Zahlen addiert.

Damit kann man endlich 2 Zahlen mit einer Funktion addieren – ich weiß, dass das keine nützliche Funktion ist, aber ich bitte um Nachsicht für das Beispiel 🙌

const result = add(12, 4);
console.log(result);

Wenn das beschlossen ist, ist es an allen Javascript-Interpretern, diese neue Funktion zu implementieren.

Javascript-Interpreter

Ein Javascript-Interpreter ist ein Programm, das Javascript-Code lesen und ausführen kann. Alle Browser, die Javascript unterstützen, sind Javascript-Interpreter.

Neben den Browsern gibt es auch andere Javascript-Interpreter. NodeJS ist ein erstes Beispiel für einen Interpreter, mit dem man Javascript außerhalb eines Browsers ausführen kann. Es ist ein Interpreter, weil er auch Javascript liest und ausführt (sowie APIs für das Betriebssystem bereitstellt).

Nicht jeder aktualisiert seinen Browser, und nicht alle Browser unterstützen die gleichen Javascript-Funktionen. Und genau hier wird es unübersichtlich.

Die neueste ECMAScript-Version ist ES10. Allerdings unterstützen nicht alle Browser diese neue ES-Version, da sie die neuen Funktionen noch implementieren müssen.

Außerdem gibt es eine Menge Leute mit veralteten Versionen ihrer Browser, so dass es eine Weile dauern könnte, bis alle Benutzer diese neuen, schicken ES10-Funktionen ausführen können.

ES-Versionen

Lassen Sie uns einen kleinen Umweg machen und über ES-Versionen sprechen.

Wie ich bereits im vorherigen Abschnitt erwähnt habe, ist die neueste Version von ECMAScript ES10. Nun gibt es nicht wirklich eine Namenskonvention, wenn es um ECMAScript-Versionen geht. Daher wird ES10 auch ECMAScript2019 und ES2019 genannt.

Die letzte wirklich große Änderung an der Sprache war ES6, das 2015 herauskam, daher wird es manchmal auch als ES2015 bezeichnet – Ja, das ist verwirrend, ich weiß 😌

Da es nach ES6 nur kleine Änderungen an der Sprache gibt, werden alle Versionen nach ES6 manchmal auch als ESNext bezeichnet.

Javascript Transpilers

Erinnern Sie sich an das Problem, dass nicht alle Browser die neuesten ES10-Features unterstützen? Es gibt eine Lösung. Transpilers!

Babel ist ein Beispiel für einen Javascript Transpiler. Babel wandelt eine neuere Javascript-Version in eine ältere um. Auf diese Weise kann man die neuen, schicken ES10-Features nutzen und sie von Babel in die weithin unterstützte ES5-Version transpilieren lassen.

Unterschied zwischen NodeJS und Browsern

NodeJS und Browser sind beide Javascript-Interpreter. Je nachdem, welche Browserversion und welche Node-Version Sie haben, können sie die gleiche Version von ECMAScript unterstützen.

Node wird jedoch direkt auf einem Computer ausgeführt. Das bedeutet, dass es eine Reihe von Bibliotheken gibt, die mit Node gebündelt sind und im Browser nicht funktionieren.

In NodeJS können Sie zum Beispiel neue Dateien erstellen. In einem Browser wäre dies ein großes Sicherheitsrisiko, so dass dies nicht möglich ist.

Deshalb werden NodeJS-Programme, die in der gleichen ECMAScript-Version geschrieben wurden, auch nicht in Ihrem Browser laufen, der die gleiche Version unterstützt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.