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
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()
mitwindow.prompt()
oderwindow.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 wiewindow.alert()
oderdocument
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, sondernconsole.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:
- die Laufzeitumgebung eines Browsers
- 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.