Zum Inhalt
wannacode

Was ist JavaScript

Kurz gesagt: JavaScript ist die Sprache des Webbrowsers, und mit Node.js läuft es auch auf dem Server und auf deinem Computer: Node.js übersetzt die Datei und führt sie aus.

Problem

Warum JavaScript

Es gibt Hunderte von Programmiersprachen. Jede ist für etwas gut, aber nicht für alles gleich gut. Bevor du Monate mit einer von ihnen verbringst, solltest du wissen, wo du sie einsetzen wirst.

JavaScript ist die Sprache des Webbrowsers. Jeder Browser führt es aus, und du musst nichts installieren:

  • Websites: die Buttons, Menüs, Formulare und alles, was sich auf der Seite ändert, ohne dass sie neu geladen wird;
  • Server: Mit Node.js läuft dieselbe Sprache auch außerhalb des Browsers, auf einem Server und auf deinem Computer;
  • Desktop- und Handy-Apps: Der Editor Visual Studio Code zum Beispiel ist in TypeScript (JavaScript mit Typen) geschrieben und läuft als JavaScript-Programm;
  • die Werkzeuge von Webentwicklern: Fast alles, womit man eine Website baut, ist in JavaScript geschrieben.

JavaScript gibt es seit 1995. Der Name klingt wie Java, aber die beiden Sprachen haben außer einer ähnlichen Syntax nichts gemeinsam.

Die Idee

Vom Text zum Programm

Das Programm, das du schreibst, ist normaler Text in einer Datei. Hier ist ein ganzes Programm:

shop.js
console.log("Bestellung Nr. 1024 wurde angenommen.");
Ausgabe
Bestellung Nr. 1024 wurde angenommen.

Ja, das ist das ganze Programm: eine Zeile. Zu den Wörtern darin kommen wir in der Lektion „Dein erstes Programm“. Hier geht es um etwas anderes: Der Prozessor des Computers versteht diesen Text nicht. Etwas muss ihn übersetzen.

  1. Du schreibst den Quellcode in eine Datei namens shop.js.
  2. Du startest sie mit dem Befehl node shop.js. Node.js prüft, wie die ganze Datei geschrieben ist, und übersetzt sie in Bytecode. Das passiert im Speicher, bei jedem Start des Programms: Einen eigenen Kompilierschritt, den du ausführen müsstest, gibt es nicht.
  3. Node.js führt den Bytecode aus und übersetzt außerdem die Teile, die oft laufen, in Maschinencode, damit sie schneller sind.

Es gibt Node.js für Windows, macOS und Linux, und Browser führen dieselbe Sprache selbst aus. Deshalb kannst du shop.js selbst auf einen anderen Computer mitnehmen, und es läuft ohne jede Änderung. Das nennt man Plattformunabhängigkeit.

console.log("Bestellung Nr. 1024 wurde angenommen.");
Schritt für Schritt, in Worten
  1. Du schreibst den Quellcode: normalen Text in der Datei shop.js.
  2. Einen eigenen Compiler, den du startest, gibt es nicht: Node.js liest die Datei selbst.
  3. Auf einen anderen Computer kommt also shop.js selbst, keine kompilierte Datei.
  4. Dieselbe shop.js geht unverändert an Windows, macOS und Linux.
  5. Node.js prüft auf jedem System die Datei, übersetzt sie und führt sie aus. Die Ausgabe ist dieselbe.
Genauer, für Neugierige
  • Die Prüfung umfasst die ganze Datei. Fehlt in der zweiten Zeile eine Klammer, gibt das Programm nichts aus, nicht einmal die erste Zeile: Node.js bricht mit einem SyntaxError ab, bevor es überhaupt etwas ausführt. Ein falsch geschriebener Name (totl statt total) ist etwas anderes. Dieser Fehler (ReferenceError) zeigt sich erst, wenn das Programm seine Zeile erreicht, und die Zeilen davor sind schon gelaufen.
  • Node.js baut auf V8 auf, der JavaScript-Engine des Browsers Chrome. V8 übersetzt Teile des Programms in Maschinencode, während es läuft, und optimiert die Teile stärker, die am häufigsten laufen. Das nennt man JIT-Kompilierung (just-in-time).
  • Speicher. Jedes Programm belegt Speicher für seine Daten. In Sprachen wie C gibt der Programmierer den Speicher, den er nicht mehr braucht, selbst frei, und wenn er es vergisst oder falsch macht, belegt das Programm immer mehr Speicher oder stürzt ab. JavaScript erledigt das für dich: Der Garbage Collector („Müllsammler“) findet die Daten, die das Programm nicht mehr erreichen kann, und gibt ihren Speicher frei.

Die Idee

Was du lernst

Der Kurs besteht aus Modulen. Jedes Modul verwendet nur, was in den Modulen davor vorkam:

  1. Grundlagen der Sprache: Variablen, Eingabe und Ausgabe, Berechnungen, Bedingungen, Schleifen, Arrays, Text.
  2. Funktionen: Code, den du einmal schreibst und oft aufrufst.
  3. Klassen und Objekte: deine eigenen Typen, etwa Order oder Student.
  4. Vererbung und Polymorphie: was mehrere Typen gemeinsam haben, an einer Stelle.
  5. Fehler und Exceptions: was das Programm tut, wenn etwas schiefgeht.
  6. Text und Dateien: Arbeit mit Strings, Suchmustern (Regex) und Dateien.
  7. Collections: Arrays, Stack, Queue, Map, Set.
  8. Modernes JavaScript: Pfeilfunktionen, Datenverarbeitung in Schritten und die neueren Möglichkeiten der Sprache.
  9. Programme in der echten Welt: Tests, Nebenläufigkeit, Netzwerk, Datenbanken.

Neben dem Hauptweg gibt es Spiele und Projekte: ganze Programme, die du Schritt für Schritt baust.

In diesem Kurs läuft JavaScript mit Node.js im Terminal, nicht in einer Browserseite. So lernst du die Sprache selbst, ohne HTML und CSS drumherum. Die Arbeit mit einer Seite im Browser fällt danach leicht, weil die Sprache dieselbe ist.

Die Idee

Wie du hier lernst

Jede Lektion ist eine Reihe von Karten, eine Idee pro Karte. Meist beginnt sie mit einem Problem aus dem echten Leben und zeigt dann, was wirklich passiert, oft mit einer Animation neben dem Code. Danach kommt eine kleine Aufgabe: die Ausgabe vorhersagen, das Fehlende ergänzen, den Fehler finden. Am Ende gibt es eine Übung, die du in deinem eigenen Editor löst, und einen kurzen Test.

Dein Fortschritt wird im Browser gespeichert: Die Lektion macht bei der Karte weiter, bis zu der du gekommen bist.

Die Karte des ganzen Kurses ist auf der Startseite des Kurses.

Überspring die Übungen nicht. Code lesen und Code schreiben sind verschiedene Fähigkeiten, und die zweite kommt nur vom Schreiben.

Die Idee

Fehler gehören zur Arbeit

Deine ersten Programme werden oft nicht starten. Du wirst ein Anführungszeichen oder eine geschweifte Klammer vergessen, und Node.js wird sich weigern, die Datei auszuführen.

Das ist keine Note für dich. Die Fehlermeldung ist da, um zu helfen: Sie sagt dir, in welcher Zeile das Problem liegt und was es ist. Erfahrene Programmierer sehen diese Meldungen auch jeden Tag. Der Unterschied ist, dass sie gelernt haben, sie ruhig zu lesen. Wir fangen schon in der allerersten Lektion mit Code an, sie zu lesen.

Wenn etwas lange nicht klappen will, lass es liegen und komm etwas später zurück. Oft siehst du den Fehler sofort, wenn du noch einmal hinschaust.

Kurz gesagt

Kurz gesagt

  • JavaScript läuft in jedem Browser und mit Node.js auch auf dem Server und auf deinem Computer.
  • Den Quellcode (shop.js) startest du mit node shop.js: Node.js prüft die Datei, übersetzt sie und führt sie aus. Dieselbe Datei läuft auf jedem System.
  • Speicher gibt der Garbage Collector automatisch frei.
  • Der Kurs besteht aus Modulen, jede Lektion aus Karten. Die Übungen machst du in deinem eigenen Editor.
  • Eine Fehlermeldung ist Hilfe, keine Note.

Als Nächstes machst du deinen Computer bereit: was du installieren musst, um dein erstes Programm zu starten.

Erstellt von Ivo Gergov im Rahmen der Kampagne von Evo Tech für zugängliche Programmierausbildung ·