Einleitung

Computer sind schon wahre Wunder-Maschinen. Doch das sind sie nur dadurch, dass es schlaue Programmierer gibt, die die passenden Anwendungen und Spiele erstellen. Wenn du eines Tages zur Gilde der Programmierer zählen willst, dann hast du hier die Möglichkeit, bei null anzufangen – ohne irgendwelche Programmierkenntnisse.

Hier lernst du, in JavaScript‌ zu programmieren, von dem du sicher schon einmal etwas gehört hast. Das ist nicht die kleine Schwester der Programmiersprache Java. Was ist der Unterschied? Grob gesagt: Es gibt eine Gruppe von Sprachen, da wird aus dem, was du programmierst, direkt ein ausführbares Programm erzeugt. Dazu gehören Java, C#, C++. Und es gibt Sprachen, da ist immer ein sogenannter Interpreter‌ nötig, der das Programm ausführt. Eine solche Sprache ist JavaScript, und der passende Interpreter steckt in fast jedem Webbrowser.

Du hast bestimmt auch schon mal von HTML gehört. Ohne diese »HyperText Markup Language« könntest du dir keine Webseiten anschauen. HTML dient dazu, elektronische Dokumente zu erstellen. Am bekanntesten wurde HTML als das Format für Web-Dokumente, wie z.B. Seiten von Homepages, die sich in einem passenden Browser darstellen lassen.

Und JavaScript, das Mitte der 1990er Jahre entwickelt wurde, erweitert die Möglichkeiten von HTML stark. Mithilfe von JavaScript lassen sich sogar Spiele erstellen, die man direkt im Browser spielen kann.

JavaScript hat viel von anderen (großen) Programmiersprachen übernommen. Diese Sprache ist leicht erlernbar, und weil JavaScript-Programme direkt in fast jedem Browser funktionieren, braucht man nicht viel Werkzeug, um Anwendungen und Spiele zu erstellen.

Was heißt Programmieren?

Wenn du aufschreibst, was ein Computer tun soll, nennt man das Programmieren‌. Das Tolle daran ist, dass du selbst bestimmen kannst, was getan werden soll. Lässt du dein Programm laufen, macht der Computer das, was du ausgeheckt hast. Natürlich wird er nicht dein Zimmer aufräumen und dir auch keine Tasse Kakao ans Bett bringen. Aber beherrschst du erst mal das Programmieren, kannst du den Computer sozusagen nach deiner Pfeife tanzen lassen.

Allerdings passiert es gerade beim Programmieren, dass der Computer nicht so will, wie du es gerne hättest. Meistens ist das ein Fehler im Programm. Das Problem kann aber auch irgendwo anders im Computer oder im Betriebssystem liegen. Das Dumme bei Fehlern ist, dass sie sich gern so gut verstecken, dass die Suche danach schon manchen Programmierer zur Verzweiflung gebracht hat.

Vielleicht hast du nun trotzdem Lust bekommen, das Programmieren zu erlernen. Dann brauchst du ja nur noch eine passende Entwicklungsumgebung‌, und schon kann es losgehen.

Was ist eine Entwicklungsumgebung?

Um ein Programm zu erstellen, musst du erst einmal etwas eintippen. Das ist wie bei einem Brief oder einer Geschichte, die man schreibt. Das Textprogramm dafür kann sehr einfach sein, weil es ja nicht auf eine besondere Schrift oder Darstellung ankommt wie bei einem Brief oder einem Referat. So etwas wird Editor‌ genannt.

Ist das Programm eingetippt, kann es der Computer nicht einfach lesen und ausführen. Jetzt muss es so übersetzt werden, dass der PC versteht, was du von ihm willst. Weil er aber eine ganz andere Sprache spricht als du, muss ein Dolmetscher her.

Ein solcher Dolmetscher (= Interpreter) steckt in jedem Browser, JavaScript funktioniert sogar unter mehreren Betriebssystemen. Dein Computer kann also ein Windows-PC oder ein Linux-PC sein, ein Android-Smartphone oder irgendein anderes System. Ein und dasselbe JavaScript-Programm kann so (eventuell mit kleinen Abweichungen) auf fast jedem Computer oder Smartphone funktionieren.

Schließlich müssen Programme getestet, überarbeitet, verbessert, wieder getestet und weiterentwickelt werden. Da ist man froh, wenn man einige zusätzliche Hilfen hat. Daraus wird dann ein ganzes System, die Entwicklungsumgebung.

Warum gerade JavaScript?

Leider kannst du nicht so programmieren, wie dir der Schnabel gewachsen ist. Eine Programmiersprache‌ muss so aufgebaut sein, dass möglichst viele Menschen in möglichst vielen Ländern einheitlich damit umgehen können.

Weil in der ganzen Welt Leute zu finden sind, die wenigstens ein paar Brocken Englisch können, besteht auch fast jede Programmiersprache aus englischen Wörtern. Es gab auch immer mal Versuche, z.B. in Deutsch zu programmieren, aber meistens klingen die Wörter dort so künstlich, dass man lieber wieder aufs Englische zurückgreift.

Eigentlich ist es egal, welche Programmiersprache du benutzt. Am besten eine, die möglichst leicht zu erlernen ist. Wie du weißt, bekommst du es in diesem Buch mit der Programmiersprache JavaScript zu tun, die mittlerweile sehr weit verbreitet ist. (Willst du mal in andere Sprachen hineinschnuppern, dann empfehle ich dir z.B. eines der anderen Kids-Bücher über Python, Java oder C++.)

Der Weg zum guten Programmierer kann ganz schön steinig sein. Nicht selten kommt es vor, dass man die Lust verliert, weil einfach gar nichts klappen will. Das Programm tut etwas ganz anderes, man kann den Fehler nicht finden und man fragt sich: Wozu soll ich eigentlich programmieren lernen, wo es doch schon genug Programme gibt?

Gute Programmierer werden immer gesucht, und dieser Bedarf wird weiter steigen. Und JavaScript gehört dabei durchaus zu den erwünschten Sprachen. Wirklich gute Programmierer werden auch wirklich gut bezahlt. Es ist also nicht nur einen Versuch wert, es kann sich durchaus lohnen, das Programmieren in JavaScript zu erlernen.

Die Entwicklungsumgebung

Um eine Entwicklungsumgebung für JavaScript musst du dich nicht weiter kümmern, wenn dir eine einfache reicht. Das ist der Editor, der mit einem Betriebssystem wie Windows mitinstalliert wird. Besser aber ist etwas mit mehr Komfort, wie Visual Studio Code von Microsoft. Dieses Paket werden wir hier ausgiebig benutzen. Du kannst es dir von dieser Seite herunterladen:

https://code.visualstudio.com/

(Im Anhang steht, wie du dieses Paket installierst, und im Buch wird erklärt, wie du es nutzen kannst.)

Und was bietet dieses Buch?

Über eine ganze Reihe von Kapiteln verteilt lernst du

Im Anhang gibt es dann noch zusätzliche Informationen und Hilfen, unter anderem über Installationen und den Umgang mit Fehlern.

Wie arbeite ich mit diesem Buch?

Grundsätzlich besteht dieses Buch aus einer Menge Text mit vielen Abbildungen dazwischen. Natürlich habe ich mich bemüht, alles so zuzubereiten, dass daraus lauter gut verdauliche Happen werden. Damit das Ganze noch genießbarer wird, gibt es zusätzlich noch einige Symbole, die ich dir hier gern erklären möchte:

Arbeitsschritte

Grundsätzlich lernt man besser, wenn man einen Programmtext selbst eintippt oder ändert. Aber nicht immer hat man große Lust dazu. Deshalb gibt es alle Projekte im Buch auch als Download:

http://www.mitp.de/0263

Und hinter einem Programmierschritt findest du auch den jeweiligen Namen des Projekts oder eines Ordners (z.B. projekt1). Wenn du also das Projekt nicht selbst erstellen willst, kannst du stattdessen die passenden Dateien laden (sie liegen alle im Haupt-Ordner Projekte).

Aufgaben

Am Ende eines Kapitels findest du jeweils eine Reihe von Fragen und Aufgaben. Diese Übungen sind nicht immer ganz einfach, aber sie helfen dir, noch besser zu programmieren. Lösungen zu den Aufgaben findest du in verschiedenen Formaten ebenfalls im Verzeichnis Projekte. Du kannst sie dir alle im Browser oder in einem Textverarbeitungsprogramm anschauen. Oder du lässt sie dir ausdrucken und hast sie dann schwarz auf weiß, um sie neben deinen Computer zu legen. (Auch die Programme zu den Aufgaben liegen im Ordner Projekte.)

Notfälle

[Bild]

Vielleicht hast du irgendetwas falsch gemacht oder etwas vergessen. Oder es wird gerade knifflig. Dann fragst du dich, was du nun tun sollst. Bei diesem Symbol findest du eine Lösungsmöglichkeit. Notfalls kannst du aber auch ganz hinten im Anhang B nachschauen, wo einige Hinweise zur Pannenhilfe aufgeführt sind.

Wichtige Stellen im Buch

[Bild]

Hin und wieder findest du ein solch dickes Ausrufezeichen im Buch. Dann ist das eine Stelle, an der etwas besonders Wichtiges steht.

[Bild]

Wenn du ein solches »Wow« siehst, geht es um ausführlichere Informationen zu einem Thema.

Was brauchst du für dieses Buch?

Installiert wird Visual Studio Code mit einem Setup-Programm in ein Verzeichnis deiner Wahl. Außerdem solltest du einen Ordner einrichten, in dem du später deine JavaScript-Projekte unterbringen kannst – z.B. D:\JScript.

Die Beispielprogramme in diesem Buch gibt es alle als Download von der Homepage des Verlages, falls du mal keine Lust zum Abtippen hast:

http://www.mitp.de/0263

Und auch die Lösungen zu den Fragen und Aufgaben sind dort untergebracht (alles im Ordner Projekte).

Betriebssystem

Die meisten Computer arbeiten heute mit dem Betriebssystem Windows. Davon brauchst du eine möglichst neue Version (am besten von Windows 10). JavaScript gibt es unter anderem auch für Linux, aber hier im Buch geht es nur um Windows.

Speichermedien

Auf jeden Fall benötigst du etwas wie einen USB-Stick oder eine SD-Card, auch wenn du deine Programme auf die Festplatte speichern willst. Auf einem externen Speicher sind deine Arbeiten auf jeden Fall zusätzlich sicher aufgehoben. Bitte gegebenenfalls deine Eltern oder Lehrer um Hilfe.

Hinweise für Lehrer

Dieses Buch versteht sich auch als Lernwerk für den Informatik-Unterricht in der Schule. Dort setzt natürlich jeder Lehrer seine eigenen Schwerpunkte. Benutzen Sie an Ihrer Schule bereits ein Werk aus einem Schulbuchverlag, so lässt sich dieses Buch auch als Materialienband einsetzen – in Ergänzung zu dem vorhandenen Schulbuch. Weil dieses Buch sozusagen »bei null« anfängt, ist ein direkter Einstieg in JavaScript möglich – ohne irgendwelche anderen Programmierkenntnisse.

Ein wichtiger Schwerpunkt in diesem Buch ist die objektorientierte Programmierung (OOP). Auf die wichtigsten Eigenheiten (Kapselung, Vererbung und Polymorphie) wird ausführlich eingegangen. Ein großer Schwerpunkt ist die Programmierung von Spielen.

In den Projekten werden alle wesentlichen Elemente des Wortschatzes von HTML und JavaScript wie auch die wichtigsten Grafik-Komponenten eingesetzt. In den Lösungen zu den Aufgaben finden Sie weitere Vorschläge zur Programmierung.

Übungsmedien

Für den Informatik-Unterricht sollte jeder Schüler ein eigenes externes Speichermedium haben, um darauf seine Programmierversuche zu sichern. So wird verhindert, dass sich auf der Festplatte des Schulcomputers mit der Zeit allerlei »Datenmüll« ansammelt. Außerdem dient der eigene Datenträger dem Datenschutz: Nur der betreffende Schüler kann seine Daten manipulieren.

Auf die Dateien zum Buch verzichten?

Vielleicht ist es Ihnen lieber, wenn Ihre Schüler die Projekte alle selbst erstellen. Dann lassen Sie die Download-Dateien einfach (erst einmal) weg.

Regelmäßig sichern

Es kann nicht schaden, die Programmdateien, an denen gerade gearbeitet wird, etwa alle zehn Minuten zu speichern. Denn Computer pflegen gern gerade dann »abzustürzen«, wenn man seine Arbeit längere Zeit nicht gespeichert hat.

Kapitel 1:
Aller Anfang ist schwer? Einstieg in JavaScript

Du willst gleich loslegen? Dem Computer endlich mal etwas sagen, was er für dich tun kann? Na, dann schalte deinen PC an und lass erst mal Windows auftauchen. Von da aus geht es dann direkt zum ersten Programmprojekt in JavaScript.

In diesem Kapitel lernst du

Ein erstes Hallo, schlicht und einfach

Eigentlich ist es ganz einfach, ein erstes Programm in JavaScript zu schreiben. Du brauchst dazu nur einen simplen Editor wie den, der stets mit Windows mitinstalliert wird, auch Notepad‌ genannt. Und du brauchst einen Browser‌, das ist das Programm, mit dem du im Internet surfst oder Dateien von dort herunterlädst. Also z.B. Chrome von Google oder Edge von Microsoft, um nur zwei zu nennen.

Probieren wir aus, wie wir den Browser zum Hallo-Sagen bringen.

[Bild]

Auf dem Desktop findest du nun ein neues Symbol.

[Bild]

[Bild]

Bevor wir da etwas hineintippen, speichern wir die noch leere Datei unter einem passenden Namen:

[Bild]

[Bild]

Warum wir die Datei so genannt haben, erkläre ich später. Jetzt wollen wir sie mit Inhalt füllen. Aber nur mit einigen wenigen Zeilen.

Und nun kommen wir zu dem, was du als Symbol auf dem Desktop sehen kannst:

[Bild]

[Bild]

Warum index‌ und warum html‌? Die Kennung html ist die Abkürzung für »HyperText Markup Language«, eine Hilfssprache für das Programmieren von Webseiten.

Was konkret heißt, dass unser kleines Programm da oben zum Teil in HTML geschrieben wurde. Denn eigentlich ist HTML eine Beschreibungssprache, die den Aufbau einer Webseite beschreibt.

index heißt unsere Datei, weil sie so vom Browser als Startdatei einer vermeintlichen Homepage bzw. Webseite interpretiert wird. Das siehst du gleich nach dem Start.

Wie das Dateisymbol für INDEX.HTML aussieht, hängt davon ab, welcher Browser dein Standard-Browser ist. (Ich benutze außer Microsoft Edge auch Google Chrome und Mozilla Firefox.)

[Bild]

Der Browser (mit dem du normalerweise im Internet surfst) öffnet sich und zeigt ein einfaches, aber nettes »Hallo«. Womit du dein erstes Programm geschafft hast – allerdings nicht in reinem JavaScript. Das ist ja die Sprache, um die es in diesem Buch eigentlich gehen soll. Lediglich die Zeile in der Mitte ist in JavaScript geschrieben, das Drumherum ist aber nötig, damit der Browser weiß, dass es um JavaScript geht.

Jeder Internet-Browser versteht die Sprache JavaScript, weil er einen eingebauten Interpreter für diese Sprache hat. Ein Interpreter‌ ist eine Art Dolmetscher. Allerdings »spricht« ein Browser erst mal nur HTML, eine andere Sprache, in der auch anders programmiert wird als in JavaScript.

‌Mit der einleitenden Zeile <script> wird dem Browser mitgeteilt, dass gleich etwas kommt, das in einer Scriptsprache, wie man JavaScript auch nennt, verfasst ist. Das abschließende </script> – mit vorgesetztem Schrägstrich – zeigt dem Browser, dass hier die JavaScript-Anweisungen enden.

Die einzige Zeile in JavaScript‌‌

document.write("Hallo");

bedeutet, dass in das Browserfenster etwas geschrieben werden soll.

[Bild]

Der entsprechende Text wird in Anführungszeichen gesetzt. Das können sowohl einfache wie auch doppelte sein: 'Hallo' ist also ebenso zulässig wie "Hallo".

Du kannst gerne mal das »Hallo« durch einen anderen (längeren) Text ersetzen, um zu sehen, wie das im Browser aussieht.

Visual Studio Code starten

Während der einfache Texteditor am Anfang ausreichen mag, wird er zunehmend unbequem, wenn wir größere Projekte gestalten wollen. Deshalb steigen wir an dieser Stelle um auf einen sogenannten Quelltext-Editor. Ich habe mich für Visual Studio Code‌ von Microsoft entschieden (mit dem man übrigens außer in JavaScript noch in vielen anderen Sprachen programmieren kann).

‌‌Bevor wir aber damit arbeiten können, muss Visual Studio Code erst installiert werden. Genaues erfährst du im Anhang A. Hier musst du dir von jemandem helfen lassen, wenn du dir das Einrichten nicht allein zutraust.

[Bild]

Im Folgenden machen wir es uns einfacher und sprechen kurz von VS Code.

Das Allererste aber, was erledigt werden muss, ist das Erzeugen eines Ordners, in dem alle unsere JavaScript-Projekte gespeichert werden sollen. Ich schlage vor, ihn einfach Projekte zu nennen.

[Bild]

Nun können wir VS Code starten. Eine Möglichkeit ist diese:

[Bild]

[Bild]

‌‌Ich empfehle dir, eine Verknüpfung auf dem Desktop anzulegen:

  • Dazu klickst du mit der rechten Maustaste auf das Symbol für VS Code. Im Kontextmenü wählst du Kopieren.

  • Dann klicke auf eine freie Stelle auf dem Desktop, ebenfalls mit der rechten Maustaste. Im Kontextmenü wählst du Verknüpfung einfügen.

  • Es ist sinnvoll, für das neue Symbol auf dem Desktop den Text Code.exe – Verknüpfung durch VS Code zu ersetzen.

Von nun an kannst du auf das neue Symbol doppelklicken und damit VS Code starten.

Je nach Computer kann es eine Weile dauern, bis VS Code geladen ist. Einige Zeit später landest du in einem Willkommen-Fenster.

[Bild]

‌Ganz oben kann man die Menüleiste erkennen. Von den Menüs wirst du wahrscheinlich diese vier am meisten benutzen:

[Bild]

Einige wichtige Menüeinträge sind in einem sogenannten Popup-Menü‌ zusammengefasst. Das heißt so, weil es dort aufklappt, wo du gerade mit der rechten Maustaste hin klickst.

‌Und nun schauen wir uns mal unter der Menüleiste um. Lass dich durch den Inhalt dieses Fensters nicht verwirren:

[Bild]

Uns interessiert jetzt das, was (links oben) unter Start steht. Bevor wir eine neue Datei erstellen, will VS Code wissen, welchen Ordner wir für unser Programmprojekt ausgewählt haben.

[Bild]

[Bild]

Das Aussehen des Fensters von VS Code hat sich nun ein wenig geändert:

[Bild]

Die nötigen Erweiterungen

‌‌‌‌Bevor wir jetzt eine neue Datei erzeugen, benötigen wir das passende Hilfsmittel, damit wir später von VS Code aus direkt den Browser starten können, in dem wir das JavaScript-Programm ausführen wollen.

[Bild]

Es gibt da ein reichhaltiges Angebot. Für uns interessant sind nur die Erweiterungen für einen der Browser, die wir benutzen, das sind meistens Microsoft Edge, Google Chrome und Mozilla Firefox.‌‌‌

[Bild]

[Bild]

[Bild]

Kurze Zeit später ist VS Code bereit, deine späteren Programme im entsprechenden Browser zu starten.

Und nun fangen wir endlich an mit unserem Projekt.

[Bild]

Die neue Datei sollte nun gleich unter dem passenden Namen gespeichert werden, damit VS Code weiß, mit welcher Art von Sprache wir arbeiten wollen.

[Bild]

[Bild]

[Bild]

Alternativ kannst du auch ganz links (im Explorer) neben Projekte auf das erste Symbol klicken.

[Bild]

Hier lässt sich dann auch direkt ein neuer Name eingeben. Den Typ erkennt VS Code an der Endung.

[Bild]

Der steinige Weg zum zweiten Hallo

Und nun können wir unseren Programmtext eingeben (auch Quelltext genannt).

[Bild]

Wie du siehst, wird dein Text schön bunt dargestellt, und die mittlere Zeile ist eingerückt. Sieht doch schick aus! Doch darum geht es nicht, sondern der Quelltext‌ (der ja bei großen Programmen sehr lang werden kann) soll möglichst gut lesbar sein. Unter anderem, damit du Fehler schneller findest.

[Bild]

‌Klein, aber fein: Wie du siehst, steht am Ende der write-Zeile ein Semikolon (;). Das ist wichtig, um jede Anweisung eindeutig abzuschließen.

Und jetzt sollten wir das Ganze speichern und dann starten.

[Bild]

[Bild]

Nun musst du nur noch das »Environment« auswählen, womit die Erweiterung gemeint ist, die dafür sorgt, dass der passende Browser bedient wird.

[Bild]

Doch es wird kein Browser gestartet. Stattdessen erscheint auf einmal fast erdrückend viel Text auf der Bildfläche.

[Bild]

‌Das ist der Inhalt der Datei launch.json‌. Sieht verwirrend aus, ist aber nötig, damit VS Code dein Projekt verwalten kann. Denn dort stehen einige Hinweise, die für den Programmstart über den Browser wichtig sind. Diese Datei wird von VS Code automatisch erzeugt.

[Bild]

Wer es genauer wissen will, hier sind ein paar Einzelheiten mehr:

"type" bezeichnet den Browser-Typ, da kann außer "edge" also auch z.B. "chrome" oder "firefox" stehen.

Mit "request": "launch" ist eine Anfrage für den Programmstart gemeint.

"name" steht für den Namen oder eine Erläuterung zur aktuellen Datei.

Hinter "url" steht die Adresse, an der der Browser die HTML-Datei finden soll. Liegt die z.B. auf einer Computer-Festplatte, dann setzt man "file:///" vor den vollständigen Datei-Pfad.

Die Zeile mit "webRoot" kann hier auch weggelassen werden. Außerdem könnte man die oberen drei (grün gefärbten) Zeilen löschen, das sind nur Kommentare.

Bei mir führte das zu diesem Ergebnis:

[Bild]

Was ist da los? Nichts anderes, als dass der Browser die angegebene Adresse nicht findet. Er versucht, eine mögliche Seite von dem Computer abzurufen, findet sie aber nicht. In diesem Fall müssen wir direkt den Pfad verwenden, an dem index.html zu finden ist. Bei mir liegt sie auf Laufwerk D: im Ordner JScript und dort im Unterordner Projekte.

Statt‌

http://localhost:8080

muss es bei mir heißen:

file:///D:/JScript/Projekte/index.html

file statt http heißt, dass es sich hier um eine Datei auf einem Datenträger des eigenen Computers handelt. Beachte, dass hinter file 3 (!) Schrägstriche stehen müssen. Solltest du ein anderes Laufwerk oder andere Ordner benutzen, dann musst du die Pfadangabe entsprechend anpassen.

Bei mir sieht die Datei launch.json nun so aus:

[Bild]

Dabei habe ich auch noch den Text hinter "name" angepasst.

Visual Studio Code beenden

‌Wir machen jetzt an dieser Stelle eine Verschnaufpause. Eigentlich ist alles so weit fertig für einen Programmlauf, aber den heben wir uns fürs nächste Kapitel auf. Hier sollst du erst noch erfahren, wie man die VS-Code-Umgebung verlässt und beendet. Dazu gibt es nicht nur einen Weg:

[Bild]

Solltest du vorher noch etwas am Text geändert haben, dann wird das automatisch gespeichert.

[Bild]

Das betrifft sowohl Änderungen in index.HTML als auch in launch.json. Allerdings kannst du beide Dateien während der Bearbeitung jederzeit über File und Save oder Save As speichern, und das auch beliebig oft.

Zusammenfassung

Nun hast du dein erstes Programm-Projekt fast geschafft. Mal sehen, was du von diesem Kapitel behalten hast. Da wären zuerst mal ein paar Optionen im Umgang mit VS Code:

VS Code starten

Doppelklicke auf das Symbol für VS Code.

Projekt-Ordner öffnen

Klicke auf den Eintrag Open folder

Neue Datei erzeugen

Klicke auf den Eintrag New file

Dateien speichern

Klicke auf File/Save

Dateien neu speichern

Klicke auf File/Save As

Programmprojekt starten

Klicke auf Run/Start Debugging

Hilfesystem aufrufen

Klicke auf Help oder drücke F1

VS Code beenden

Klicke auf File/Exit

Du kennst die Datei launch.json – ein bisschen. Du weißt, dass ein JavaScript-Programm einen HTML-Rahmen braucht, um in einem Browser zu laufen. Dazu kennst du ein paar Wortschatzbrocken, zum einen von HTML:

<script>

Anfangs-Marke für ein JavaScript-Programm

</script>

End-Marke für ein JavaScript-Programm

Zum anderen von JavaScript:

document

Inhalt des Browserfensters

write()

Methode für die Anzeige von Zahlen und Text

Ein paar Fragen ...

  1. Muss ein Programm immer mit <script> und </script> eingerahmt werden?

  2. Wofür ist die Datei launch.json wichtig?

... aber noch keine Aufgabe

Kapitel 2:
Wenn und Dann und Mathe: Bedingung und Kontrolle

Nun hattest du schon mal ein Mini-Gespräch mit deinem Computer. So höflich er dabei wirken mag, das Ding ist eigentlich doch strohdumm: Er führt nur das aus, was ihm in einem Programm befohlen wird. Das heißt jedoch nicht, dass du den Computer nicht so weit bringen kannst, dass er so tut, als würde er etwas verstehen und darauf eingehen.

In diesem Kapitel lernst du

Willkommen in JavaScript

Hier wollen wir endlich das vollenden, woran uns im letzten Kapitel die Verschnaufpause gehindert hat.

[Bild]

[Bild]

Und das Ergebnis müsste etwa so aussehen:‌

[Bild]

Sieht das nicht genauso aus wie ganz am Anfang des letzten Kapitels? Ja, stimmt. Natürlich reicht uns das nicht, also wollen wir dieses kleine Programm gleich erweitern. Diesmal soll erst mal kein Hallo erscheinen, sondern eine Eingabebox, in die du etwas eintippen kannst – z.B. deinen Namen. Mit dem wirst du anschließend begrüßt:

<script>
   var eingabe = window.prompt("Wer bist du?", "");
   document.write("Hallo, " + eingabe);
</script>

[Bild]

Und du bekommst ein nettes Hallo mit deinem Namen:‌

[Bild]

[Bild]

Tippfehler kommen immer mal wieder vor. So kann es passieren, dass du statt eingabe aus Versehen beim nächsten Mal Eingabe schreibst. Dann bekommst du eine solche Fehlermeldung, ganz unten in einem kleineren Fenster von VS Code: ‌‌

[Bild]

In JavaScript ist es nicht unwichtig, ob man Groß- oder Kleinschreibung benutzt. Die Variable Eingabe gilt als nicht definiert, ist dem Computer also fremd.

Oder wenn du meinst, Window sei doch eigentlich dasselbe wie window, meldet VS Code, dass die Methode prompt plötzlich nicht mehr bekannt ist.

[Bild]

Wenn du das Ganze entsprechend korrigierst, dann klappt wieder alles.

Achte also immer, wenn ein Programm nicht richtig laufen will, auf das, was unten im Fenster Debug Console steht.

Nun wollen wir uns näher anschauen, was genau wir programmiert haben. Dabei konzentrieren wir uns nur auf die beiden Zeilen in der Mitte, denn nur die sind ja in JavaScript geschrieben:

var eingabe = window.prompt("Wer bist du?", "");
document.write("Hallo, " + eingabe);

Mit window.prompt‌‌ wird ein (kleines) Fenster geöffnet, wobei die Methode prompt bewirkt, dass dort ein Eingabefeld zur Verfügung steht. Nachdem du dort etwas eingetippt hast, muss der Computer sich das natürlich merken. Und dazu ist die Variable eingabe da. Darin wird dein Text gespeichert.

‌Und später, eine Zeile weiter, wird mit der dir schon bekannten Anweisung document.write zum einen der Text »Hallo« ausgegeben und direkt dahinter der Inhalt der Variablen eingabe. Wie du siehst, kann man zwei Elemente, die ausgegeben werden sollen, durch ein Plus (+) miteinander verknüpfen.

[Bild]

Variable‌‌? Was genau ist damit hier gemeint? Eine Variable ist ein Platzhalter, der Computer reserviert dafür ein Stück seines Arbeitsspeichers. Dort legt er dann das ab, was der Variablen zugewiesen wurde.

In JavaScript werden Variablen mit var gekennzeichnet, wenn sie neu erzeugt werden. Wird ihnen später ein neuer Wert zugewiesen, dann muss man das var weglassen.

‌Statt var kann man auch let benutzen, sodass diese beiden Versionen möglich sind:

var zahl = 5;
let zahl = 5;

Bei einer Zuweisung steht immer links die Variable und rechts der Wert, das Gleichheitszeichen hat also quasi die Bedeutung eines Pfeils:

Variable  Wert;

[Bild]

Das Gleichheitszeichen (=) wird auch Zuweisungsoperator‌‌ genannt.

In einfacherer Form kann eine Zuweisung auch so aussehen:

text = "Wer bist du?";

Dann ist die Zeichenkette "Wer bist du?" der Wert, den die Variable text bekommt. In unserem Fall bekommt die Variable eingabe keinen direkten Wert, sondern das Ergebnis eines Ausdrucks, den ich mal als »Formel« bezeichnen will:

[Bild]

Was bedeutet, dass einer Variablen natürlich auch das Ergebnis einer komplizierteren Berechnung zugewiesen werden kann (z.B. über eine Zinsformel).

Variablen sind nützlich, weil sie Daten »aufheben«, sodass der Computer sich an einen Wert erinnern kann. Vor allem in größeren Programmen ist es wichtig, dass der Inhalt einer Variablen auch mehrmals benutzt werden kann. Beispiele dafür wirst du noch kennenlernen.

Man hätte das aktuelle Programm auch so gestalten können:

var text = "Wer bist du?";
var eingabe = window.prompt(text, "");
document.write("Hallo, " + eingabe);

Dann hätten wir eine Variable mehr. Aber das muss nicht sein, man sollte Variablen nur da einsetzen, wo sie wirklich gebraucht werden.

Hier wollen wir jetzt unser Programm etwas erweitern:

var eingabe = window.prompt("Wer bist du?","");
var antwort = window.prompt
("Hallo, " + eingabe + "! Und wie geht es?","");
document.write("Dir geht es also " + antwort);

[Bild]

Beachte, dass die zweite Anweisung (mit antwort) in einer einzigen Zeile stehen sollte. Es wird öfter mal vorkommen, dass ich im Buch eine lange Zeile auf zwei verteilen muss.

Zuerst erscheint die schon bekannte Eingabebox, in die du deinen Namen eingibst. In einer weiteren Box nennt der Computer dich beim Namen und fragt dich nach deinem Befinden.

[Bild]

Und zuletzt zeigt er, dass er deine Antwort verstanden hat:

[Bild]

[Bild]

‌‌Hin und wieder kommt es vor, dass ein Fehler im Programm (der auch nur ein einfacher Tippfehler sein kann) bewirkt, dass das Programm »hängen bleibt«. Das Programm hört einfach nicht auf, aber es passiert auch nichts Sichtbares.

Dann kannst du das Programm selber stoppen. Das geht über Run und Stop Debugging.

[Bild]

Du kannst aber auch auf den Button ganz rechts oben in der Steuerleiste klicken:

[Bild]

[Bild]

‌‌Es gibt in JavaScript auch den sogenannten strict-Modus, der in manchen Fällen eine strengere Kontrolle durchführt. So bekommst du hier eine Fehlermeldung, wenn dieser Modus aktiviert ist:

"use strict";
zahl = 5;

denn es muss richtig heißen:

var zahl = 5;

[Bild]

Die Fehlermeldung gibt es nicht, wenn man "use strict" weglässt. Man kann sich zwar darüber streiten, ob der strict-Modus nötig ist, denn ein fehlendes Semikolon‌ z.B. wird nicht erkannt. Ich werde auf diese kleine Zeile nicht verzichten, auch wenn der strict-Modus zu wenige Fehler erkennt. Du kannst ihn verwenden oder weglassen – wie du willst.

Die if-Struktur

Wenn du dieses Programm mehrmals laufen lässt und jeweils verschiedene Antworten eingibst, fällt dir auf, wie eintönig ein solches Gespräch werden kann. Denn ob du nun »gut« oder »schlecht« als Antwort gibst, dein Gegenüber erwidert immer so ziemlich das Gleiche:

Dir geht es also gut
Dir geht es also schlecht

Der Computer wiederholt also nur, was du gesagt hast. Würdest du antworten: »nur ums Geld«, oder einfach irgendwelche Zeichen eintippen, dann könnte seine Reaktion auch so aussehen:

Dir geht es also nur ums Geld
Dir geht es also *+!?qwertz

[Bild]

Es wird also Zeit, dass wir dem Computer zeigen, wie man richtig auf Antworten wie »gut« oder »schlecht« eingeht! Er soll also nicht einfach nur »Dir geht es also ...« sagen, sondern sich nach unserer Antwort richten. Also könnte seine Reaktion z.B. so aussehen:

Wenn Antwort

Dann schreib

"gut"

"Das freut mich!"

"schlecht"

"Das tut mir leid!"

‌Wie aber bringen wir das dem Computer bei? So etwas wie »wenn« müsste es doch in JavaScript geben. Übersetzen wir das einfach mal ins Englische ( Hallo1):

if (antwort == "gut")
  document.write("Das freut mich!");
if (antwort == "schlecht")
  document.write("Das tut mir leid!");

[Bild]

‌Das aktuelle Projekt liegt bei VS Code immer im Ordner Projekte. Für den Download habe ich alle Projekte in Extra-Ordner gepackt, deren Namen zum jeweiligen Projekt passen sollen. Dieses Projekt nenne ich Hallo1. Wenn du das Projekt nicht selbst eintippen, sondern direkt aus dem Download-Paket benutzen willst, musst du nur den Inhalt des Ordners Hallo1 in Projekte kopieren.

Der Inhalt von antwort wird mit dem Text »gut« bzw. »schlecht« verglichen. Passt er, gibt es vom Computer auch die passende Antwort.

[Bild]

Wenn du willst, kannst du die Datei vor jeder Änderung erst mal unter anderem Namen speichern. Hier könnte das hallo1.html sein. Danach lädst du die ursprüngliche Datei index.html neu und bringst sie auf den neuesten Stand.

Du kannst auch – wie ich – jedes Mal den kompletten Ordner Projekte kopieren und umbenennen. Dann hättest du jetzt zwei Ordner mit JavaScript-Programm.

[Bild]

Wie gewünscht (oder wie es sich gehört), gibt der Computer nun eine passende Bemerkung auf deine Antwort.

[Bild]

‌‌‌Werfen wir gleich einen Blick auf den Operator, der da hinter der Variablen antwort steht: Im Gegensatz zum Zuweisungsoperator (=) kommt hier das Gleichheitszeichen doppelt vor:

antwort == "gut"
antwort == "schlecht"

‌Das ist ein Vergleichsoperator‌, der überprüft, ob beide Seiten genau gleich sind. Es kann leicht passieren, dass man das bei der Eingabe übersieht, was dann zu einer fehlerhaften Ausgabe führt:‌‌

if (antwort = "gut")
  document.write("Das freut mich!");
if (antwort = "schlecht")
  document.write("Das tut mir leid!");

Hier wird von VS Code kein Fehler gemeldet, aber du kriegst am Ende beide Antworten, egal was du eingibst.

[Bild]

Betrachten wir jetzt einmal genauer die Struktur, die dem Computer scheinbar ein bisschen Mitgefühl verleiht. Wie wird die Antwort ausgewertet?

Antwort

JA

NEIN

"gut"

"Das freut mich!"

(weiter im Programm)

"schlecht"

"Das tut mir leid!"

(weiter im Programm)

Verallgemeinert heißt das:

(nur) WENN eine bestimmte Bedingung erfüllt ist,
soll der Computer einen Anweisungsblock ausführen – sonst nicht.

[Bild]

[Bild]

Die geschweiften Klammern brauchen wir jetzt noch nicht, weil unser Anweisungsblock nur aus einer einzigen Anweisung besteht.

Die Bedingung‌, das ist hier:

antwort == "gut"

oder auch:

antwort == "schlecht"

Im Anweisungsblock‌ steht diese eine Anweisung:

  document.write("Das freut mich!");

oder

  document.write("Das tut mir leid!")

Das Ganze nennt man if-Struktur oder Kontrollstruktur‌. Denn der Computer bekommt die Anweisung, etwas zu kontrollieren. Hier ist es das, was als antwort eingetippt wird. Die document.write-Zeilen gehören also mit zur if-Struktur.