Einführung in die Programmierung mit JavaScript

Aufgabe 1: Ein neues Webprojekt erstellen

Im Rahmen dieses Übungsblatts werden wir zunächst unterschiedliche Möglichkeiten ausprobieren, JavaScript in eine Webseite zu integrieren.

Die Bearbeitung des Codes von JavaScript- und HTML-Dateien kann durch einen einfachen Editor erfolgen. Vorteilhaft ist es, wenn sich dieser mit Hilfe von Erweiterungen zu einer kompletten Entwicklungsumgebung erweitert lässt, wie man dies z. B. von Processing gewohnt ist.

Die Editoren der "Atom-Familie" bieten diese Möglichkeit. Das Installieren der Erweiterungen geschieht bei diesen Editoren über das Internet. Die Erweiterungen werden im jeweiligen Benutzerprofil gespeichert. Dies hat den Vorteil, das für die Installation von Erweiterungen keine Administratorrechte erforderlich sind.

Zu den Editoren der "Atom-Familie" gehört der Atom-Editor selbst, sowie die auf seiner Grundlage entwickelten Editoren Brackets und Visual Studio Code (VSCode), welches wir hier im Labor einsetzen werden.

Visual Studio Code ist schon in der Basisausstattung recht umfangreich ausgestattet, sodass für die Webentwicklung zunächst nur die Extension LiveServer installiert werden sollte. Diese Extension ermöglicht die dynamische Bearbeitung einer Webseite, während diese im Browser angezeigt wird. Jede an der Webseite vorgenommene Änderung wird sofort im Webbrowser angezeigt (ggf. ist vorher noch das Speichern der Seite erforderlich). Um die Extension zu installieren, starten Sie zunächst VSCode und rufen dann im Programm mit CTRL+Shift+x zunächst die Extension-Anzeige auf. Tippen Sie dort im Suchdialog "Live Server" ein. Wählen Sie diesen dann aus der angezeigten Liste aus und drücken Sie in der angezeigten Extensionseite Install.

Für die Arbeit unter VSCode erzeugen Sie zunächst ein Verzeichnis mit einem Namen Ihrer Wahl, z. B. Webentwicklung, an einem Ort Ihrer Wahl. Öffnen Sie dann das soeben erzeugte Verzeichnis in VSCode mit Datei > Ordner öffnen.... Erzeugen Sie dort eine neue Datei mit Datei > Neue Datei. Speichern Sie die Datei mit Steuerung-s. Z. B. als Übungsblatt1.html. Vermeiden Sie Dateinamen mit Sonderzeichen, wie z. B. "-". Dies führt zu Problemen beim LiveServer.

Ein wichtiges Werkzeug für die Webentwicklung ist Emmet. Dieses Hilfsprogramm bietet die Möglichkeit, HTML-Code mit Hilfe von Abkürzungen zu erstellen. Sie können Emmet gleich nutzen, um ein HTML5-Grundgerüst in Ihrer Datei anzulegen. Tippen Sie hierfür in Ihrer Datei in der ersten Zeile ein Ausrufezeichen gefolgt von einem Tabulator. Dies erzeugt das folgende HTML-Grundgerüst:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

Viele Beispiele für Abkürzungen bietet der Cheat Sheet von Emmet. Dort finden Sie auch den oben genutzten Befehl für das Anlegen eines HTML-Grundgerüstes.

Wenn Sie noch keine Erfahrungen mit HTML und CSS haben, sollten Sie zunächst die drei Übungsblätter "Einführung in HTML", "HTML-Tabellen" und "CSS" bearbeiten, bevor Sie mit den Übungen dieses Übungsblatts fortfahren.

Nun zurück zu VSCode. Hier fügen Sie mit p und danach gedrücktem Tab in den Körper- bzw. Body-Bereich Ihrer HTML-Datei ein einfaches Paragraph-Element ein und in dieses den Inhalt Hello World! Speichern Sie dann die Datei.

Bevor Sie die Datei anzeigen können, müssen Sie noch für Ihren Account das Zusammenspiel zwischen VSCode und den vorhandenen Webbrowsern regeln. Am besten funktioniert zur Zeit das Zusammenspiel von VSCode mit einem Chromium-Browser, also z. B. Chrome selbst oder Edge. Machen Sie deshalb entweder den Chrome-Browser zu Ihrem Standardbrowser (unter Windows mit Start > Einstellungen > Apps > Standard-Apps > Webbrowser) oder verfahren sie wie folgt: Legen Sie im Projektverzeichnis das Unterverzeichnis .vscode an und in diesem die Datei settings.json. Schreiben Sie dann folgenden Inhalt in die Datei:

{
    "liveServer.settings.CustomBrowser" : "chrome",
}

Drücken Sie nach dem Speichern dieser Datei die am unteren Rand von VSCode befindliche Go Live-Taste. Daraufhin wird Chrome gestartet und die Webseite angezeigt. Arrangieren Sie die Programme nun so auf dem Bildschirm, dass der Editor und der Browser mit der angezeigten Webseite nebeneinander angezeigt werden. Ändern Sie den Text des Paragraph-Elements im Editor und speichern Sie wieder die Seite. Wie Sie sehen, werden die Änderungen automatisch im Browser übernommen. In der Regel ist es nicht einmal nötig, zu speichern, damit Änderungen an der angezeigten HTML-Datei in die Browseransicht übernommen werden.

Aufgabe 2: JavaScript in eine Webseite integrieren

HTML-Seiten bestehen aus Elementen, die durch Tags ausgezeichnet werden. Mit Hilfe der Kombination <p>...</p> kann einer Seite - wie oben geschehen - ein Absatz hinzugefügt werden. Entsprechend wird einer HTML-Seite JavaScript-Programmcode mit den Tags <script>...</script> hinzugefügt.

Dabei wird der Code einer HTML-Seite vom Browser in der Reihenfolge ausgewertet, in der er aus der zugehörenden Datei eingelesen wurde. Gleichermaßen wird JavaScript an der Stelle ausgeführt, an der der Code in der HTML-Datei notiert ist. Ausgaben in das Webbrowserfenster mit document.write() erfolgen an der Stelle, an der der Aufruf in den umgebenden HTML-Code, der auch als Markup bezeichnet wird, integriert wurde. Für die dynamische Erstellung von Webseiten wird an Stelle von document.write()-Aufrufen üblicherweise die Struktur der Webseite direkt bearbeitet. Diese Vorgehensweise werden wir erst später im Kurs behandeln. Für die heutigen Übungsaufgaben reicht der Lösungsansatz mit document.write()-Aufrufen.

Integrieren Sie nun - analog zu den Beispielen aus der Vorlesung - eine kurze "Hello World"-Ausgabe mittels document.write()-Methode in den HTML-Body. <script>-Elemente werden mit sc plus Tab erzeugt. Experimentieren Sie danach ein wenig mit unterschiedlichen document.write()-Ausgaben in der HTML-Datei.

Aufgabe 3: Einfache Berechnungen durchführen

Fügen Sie im Kopfbereich Ihrer HTML-Datei JavaScript-Code für drei Variablen x, y und alpha ein und initialisieren Sie die Variablen mit den in der Tabelle unten angegebenen Werten. x und y stehen z. B. für die Längen zweier Seiten eines Rechtecks oder allgemeiner Parallelogramms, alpha für den Winkel in Grad zwischen diesen Seiten. 

Ergänzen Sie den Körper bzw. Body Ihrer Datei um die unten dargestellte Tabelle. Die Tabelle selbst und die Inhalte der ersten beiden Spalten von links werden als Markup eingefügt. Die Ausgaben für die Variablenwerte und die Werte der Ausdrücke in der ganz rechten Spalte mittels document.write(). Für die Berechnung des Sinus besitzt JavaScript ein Math-Objekt. Dieses stellt die gängigen Mathematikmethoden zur Verfügung, siehe die Dokumentation zum Math-Objekt. Probieren Sie einige unterschiedliche Werte für x, y und alpha. Die angezeigten Tabellenwerte sollten sich jeweils ändern.

Tabelle mit
          Berechnungsergebnissen
Abb. 1: Tabelle mit Berechnungsergebnissen

Aufgabe 4: Listen erstellen

In der Vorlesung wurden die wesentlichen Kontrollstrukturen von JavaScript bereits behandelt. Diese werden wir nun an Hand von ein paar Übungsaufgaben ausprobieren. Zu diesem Zweck werden wir allerdings den Code nicht länger in die Hauptdatei der Webanwendung integrieren, sondern aus einer externen Datei laden. Dies dient der Übersichtlichkeit und Wiederverwendbarkeit des Programmcodes.

Erzeugen Sie in VSCode eine neue Datei und speichern Sie diese z. B. unter dem Namen uebungsblatt1.js.

Inkludieren Sie die JavaScript-Datei in Ihrer HTML-Datei unter dem bereits vorhandenen Markup mit dem folgendem Element:

<script src="uebungsblatt1.js"></script>

JavaScript-Dateien sind reine Textdateien, in die die Programmbefehle direkt eingegeben werden können, ohne dass hierfür in der JavaScript-Datei ein <script></script>-Tag erforderlich ist.

Schreiben Sie in Ihre JavaScript-Datei Programmcode zur Erzeugung einer HTML-Aufzählungsliste mittels for-Schleife. Geben Sie hierzu die entsprechenden HTML-Tags in Ihrer for-Schleife mit document.write() aus, sodass die folgende Ausgabe in Ihrem Webbrowser-Fenster erscheint:

Eine Liste von Zahlenwerten:

Fügen Sie danach JavaScript-Code für die folgende nummerierte HTML-Liste hinzu:

Eine nummerierte Liste:

  1. Listenpunkt 1
  2. Listenpunkt 2
  3. Listenpunkt 3
  4. Listenpunkt 4

Ergänzen Sie Ihren Code dann um eine Variable listSwitch, die als Schalter fungiert, sowie um eine if-else-Anweisung. Besitzt die Variable den Wert 1, so wird die nummerierte Liste angezeigt, für alle anderen Werte die einfache Liste.

Aufgabe 5: Balkendiagramm

Gegeben sei folgendes Balkendiagramm:

Ein Balkendiagramm
1. Wert:
50
2. Wert:
75
3. Wert:
100

welches mit folgendem HTML-Code erzeugt werden kann:

<table>
<tr><th colspan="2">Ein Balkendiagramm</th></tr> <tr>
<td>1. Wert:</td>
<td>
<div style="background:red; width:50px">50</div>
</td>
</tr> <tr>
<td>2. Wert:</td>
<td>
<div style="background:greenyellow; width:75px">75</div>
</td>
</tr>
<tr>
<td>3. Wert:</td>
<td>
<div style="background:blue; width:100px">100</div>
</td>
</tr>
</table>

Erzeugen Sie auf der Grundlage dieses Beispielcodes, mit Hilfe von JavaScript, document.write() und einer for-Schleife, folgendes keilförmiges Balkendiagramm, bei dem die einzelnen Zeilen durch die Iterationen der Schleife erzeugt werden:

Zu programmierendes
          Balkendiagramm
Abb. 2: Ergebnis

Aufgabe 6: Mehrfarbiges Balkendiagramm

Erzeugen Sie danach, wieder mit Hilfe einer einzelnen for-Schleife, das folgende mehrfarbige Balkendiagramm:

Zu programmierendes
          Balkendiagramm
Abb. 3: Ergebnis

Aufgabe 7: Balkendiagramm erweitern

Programmieren Sie schließlich noch folgendes Balkendiagramm. Erneut mit Hilfe einer einzelnen for-Schleife:

Zu programmierendes
          Balkendiagramm
Abb. 4: Ergebnis