Was ist JavaScript? Warum JavaScript?
Was ist JavaScript? Warum JavaScript?
~10 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026
Willkommen zu einem vollständigen JavaScript-Tutorial! Diese Serie ist die natürliche Vorstufe zu unserem "TypeScript: Das komplette Tutorial" – dort wurden JavaScript-Grundkenntnisse (Variablen, Funktionen, Arrays, Objekte, if/for) bereits vorausgesetzt. Hier holen wir genau das nach: JEDES wichtige JavaScript-Feature, von absoluten Grundlagen bis zu Closures, Prototypen und Async/Await, an einer eigenen, durchgehenden Beispiel-App.
Was ist JavaScript?
JavaScript ist eine dynamisch typisierte, interpretierte Programmiersprache, die ursprünglich 1995 von Brendan Eich in nur 10 Tagen für den Netscape-Browser entwickelt wurde, um Webseiten interaktiv zu machen. Heute ist JavaScript die einzige Programmiersprache, die NATIV in jedem Webbrowser läuft – und dank Node.js (seit 2009) auch außerhalb des Browsers: auf Servern, in Kommandozeilen-Tools, sogar auf Mikrocontrollern.
Zwei Laufzeitumgebungen: Browser vs. Node.js
JavaScript-CODE ist überall derselbe – die SPRACHE ändert sich nicht. Was sich unterscheidet, ist die Laufzeitumgebung (Runtime), die den Code ausführt und ihm zusätzliche APIs zur Verfügung stellt:
| Umgebung | Was sie bereitstellt |
|---|---|
| Browser | Stellt DOM-APIs bereit (document, window), um Webseiten zu manipulieren. Kein direkter Dateisystem-Zugriff aus Sicherheitsgründen. |
| Node.js | Stellt Server-/System-APIs bereit (fs für Dateien, process, Netzwerk-Module). Kein document, kein window – es gibt schließlich keine Webseite. |
Dieses Tutorial nutzt AUSSCHLIESSLICH Node.js: Wir bauen ein reines Kommandozeilen-Programm, ohne Browser, ohne DOM, ohne HTML. Der Grund ist derselbe wie beim TypeScript-Tutorial: Sie sollen sich auf die SPRACHE konzentrieren, ohne von Browser- oder Framework-spezifischen Konzepten abgelenkt zu werden.
Interpretiert, nicht kompiliert – mit einer wichtigen Nuance
Anders als z. B. Java oder C# wird JavaScript-Code nicht vorab zu Maschinencode kompiliert, den Sie dann verteilen. Stattdessen liest die JavaScript-Engine (z. B. Googles V8, die sowohl Chrome als auch Node.js antreibt) den Quelltext und führt ihn direkt aus. In der Praxis optimiert V8 "heißen" Code sogar zur Laufzeit zu echtem Maschinencode (Just-in-Time-Kompilierung) – für uns als Entwickler bleibt das aber unsichtbar: Wir schreiben eine .js-Datei und führen sie direkt aus, ohne separaten Kompilierschritt.
// Keine Kompilierung nötig - direkt ausführbar:
console.log('Hallo, JavaScript!');
// Terminal:
// $ node hallo.js
// Hallo, JavaScript!Dynamisch typisiert: Variablen haben keinen festen Typ
Ein zentrales Merkmal, das JavaScript von TypeScript unterscheidet: Eine Variable ist NICHT an einen bestimmten Typ gebunden – derselbe Variablenname kann nacheinander eine Zahl, dann einen String, dann ein Objekt enthalten. Der Typ wird erst zur LAUFZEIT anhand des aktuellen Werts bestimmt, nicht vorab geprüft:
let wert = 42; // wert ist jetzt eine Zahl
wert = 'zweiundvierzig'; // wert ist jetzt ein String - kein Fehler!
wert = { zahl: 42 }; // wert ist jetzt ein Objekt - auch kein Fehler!Das macht JavaScript sehr flexibel und schnell zum Prototypen – birgt aber auch die Fehlerquelle, die TypeScript (mit dem wir uns in der Fortsetzungsserie beschäftigen) gezielt schließt: Ein Tippfehler oder eine falsche Annahme über den aktuellen Typ eines Werts fällt in reinem JavaScript oft erst zur Laufzeit auf, manchmal erst beim Kunden.
Tipp: Das ist kein Grund, JavaScript zu meiden – es ist der Grund, JavaScript GUT zu verstehen: Wer die Sprache und ihre Eigenheiten (Type Coercion, this, Prototypen) wirklich durchdringt, schreibt auch ohne TypeScript robusten Code. Und genau dieses tiefe Verständnis ist das Ziel dieser Serie.
Das Beispielprojekt dieser Serie: ein Haushaltsbuch
Wir bauen gemeinsam eine Haushaltsbuch-App – ein reines Kommandozeilen-Programm in Node.js, mit dem sich Einnahmen und Ausgaben erfassen, nach Kategorien auswerten und dauerhaft speichern lassen. Bewusst ein anderes Thema als die "bibliotheks-app" aus dem TypeScript-Tutorial, damit Sie hier nicht bloß denselben Stoff wiederholt sehen. Vom ersten console.log bis zu asynchronem Datei-Zugriff mit async/await wächst dieses eine Projekt Kapitel für Kapitel mit Ihnen mit.
Was diese Serie NICHT abdeckt
- Kein Browser/DOM: keine Webseiten-Manipulation, kein HTML/CSS – dafür gibt es eigene Tutorials.
- Kein Framework: kein React, kein Express – reines "Vanilla"-JavaScript in Node.js.
- Kein TypeScript: keine Typannotationen – die Fortsetzung dazu ist unser separates "TypeScript: Das komplette Tutorial", das direkt an diese Serie anschließt.
Tipp: Vorwissen: keins nötig! Diese Serie beginnt bei absoluten Grundlagen. Sie ist der ideale Startpunkt, wenn Sie danach mit "TypeScript: Das komplette Tutorial" weitermachen möchten.