• aktuell
  • über mich
  • mein blog
  • impressum

Javascript Laufzeitumgebung 甩 / 🏃🏻‍♀⏰🏡️

In einer Laufzeitumgebung wird Ihr Programm ausgeführt. Es bestimmt, auf welche globalen Objekte Ihr Programm zugreifen kann und kann sich auch auf seine Ausführung auswirken. Dieser Artikel behandelt die beiden JavaScript-Laufzeitumgebungen:

  • die Laufzeitumgebung eines Browsers (wie Chrome oder Firefox )
  • die Node-Laufzeitumgebung

Die Laufzeitumgebung eines Browsers

Der häufigste Ort, an dem JavaScript-Code ausgeführt wird, ist in einem Browser. Ihr könnt beispielsweise mit einem beliebigen Texteditor auf eurem eigenen Computer eine Datei namens meine_website.html erstellen und folgenden HTML-Code einfügen:

<!— meine_website.html —>
<html lang="de">
  <Körper>
    <h1> Meine Website </h1>
    <script> window.alert("Hallo Welt"); </script>
  </body>
</html>

Die Datei einfach speichern und dann mit dem Browser öffnen, indem ihr in der URL-Leiste den Pfad der Datei eingebt. Oder: Bei den meisten Browsern könnt ihr lokal erstellte Webseiten laden, indem Ihr auf das Menü Datei > Datei öffnen Pfad der Datei auswählen > meine_website.html gehen. Beim Laden wird das eingebettete <script></script> ausgeführt und die Methode window.alert() erzeugt in eurem Browser ein Popur-Fenster mit dem Text „Hallo Welt“.

🤷‍♀️Wasch da los? - fragt ihr euch jetzt bestimmt 🤷‍♂️

Hier kommt die Laufzeitumgebung des Browsers zum Tragen. Die Methode window.alert() wird durch das geschriebene Script im Browser angesteuert und ausgeführt. Tatsächlich bietet das window-Objekt Zugriff auf eine riesige Menge an Daten und Funktionen.

Versucht mal, window.alert() mit window.prompt() oder window.confirm() zu ersetzen.

Anwendungen, die für den Browser erstellt und ausgeführt werden, werden deshalb auch als Front-End-Anwendungen bezeichnet. JavaScript-Code war lange Zeit nur in einem Browser ausführbar und wurde ausschließlich zur Erstellung von Frontend-Anwendungen verwendet. Um Back-End-Anwendungen zu erstellen, die auf einem Computer OHNE Browser laufen könnten, müsstet Ihr andere Programmiersprachen wie Java oder PHP verwenden.

Die Node-Laufzeitumgebung

2009 wurde die Node-Laufzeitumgebung geschaffen, um JavaScript-Code ohne Browser auszuführen, sodass Entwickler Full-Stack-Anwendungen (Front-End und Back-End) ausschließlich mit der Sprache JavaScript erstellen können.

Node ist eine völlig andere Laufzeitumgebung, was bedeutet, dass Klassen und Funktionen der Browserumgebung wie window.alert() oder document nicht verwendet werden können. Stattdessen bietet die Node-Laufzeitumgebung Back-End-Anwendungen wie den Zugriff auf eine Vielzahl von Funktionen, die in einem Browser nicht verfügbar sind, wie z. B. auf das Dateisystem, die Datenbank und das Netzwerk des Servers.

Angenommen, Ihr habt eine Datei namens my-app.js erstellt. Wir können das Verzeichnis überprüfen, in dem sich diese Datei befindet, indem wir den process.env.PWD verwenden:

// my-app.js
console.log(process.env.PWD);

Wir ihr vielleicht jetzt merkt, dass wir hier nicht mehr window.alert()nutzen, sondern console.log(...), das das Window.Object nicht mehr zur Verfügung steht.

proces ist ein Objekt, das Daten enthält, die sich auf die ausgeführte JavaScript-Datei beziehen.process.env ist ein Objekt mit Umgebungsvariablen wie process.env.PWD, das das aktuelle Arbeitsverzeichnis enthält (und steht für Print Working Directory).

Um den JavaScript-Code in dieser Datei auszuführen, stellt zunächst sicher, dass Ihr Node auf eurem Computer eingerichtet habt. Öffnet das Terminal und führt folgenden Befehl aus:

MacOS👨‍💻 (CMD + Space > Spotlight > Terminal eintragen)

$ node meine-app.js
/pfad/zu/meinem/ordner

Der node-Befehl führt die meine-app.js in der Node-Laufzeitumgebung aus. Ihr könnt auch den node -Befehl ohne ein Verweis auf eine Datei nutzen, um den Node Read-Eval-Print-Loop (REPL) zu öffnen.

node
> process.env.HOME
'/home/user'

Man kann es folgendermaßen zusammenfassen

Die Laufzeitumgebung (runtime environment) ist das, in dem euer Programm/Skript ausgeführt wird. JavaScript-Code kann in einer von zwei Laufzeitumgebungen ausgeführt werden:

  1. die Laufzeitumgebung eines Browsers
  2. die Node-Laufzeitumgebung

In jeder dieser Umgebungen sind unterschiedliche data values und functions verfügbar, und diese Unterschiede beispielsweise helfen, Front-End-Anwendungen von Back-End-Anwendungen zu unterscheiden.

Frontend-JavaScript-Anwendungen werden in der Laufzeitumgebung eines Browsers ausgeführt und haben Zugriff auf das Window-Objekt. Back-End-JavaScript-Anwendungen werden in der Node-Laufzeitumgebung ausgeführt und haben Zugriff auf das file system, databases und networks, die mit dem Server verbunden sind.


Bünyamin Tunc

Saturday, Jan 1, 2022