4. Unterrichtsblock: Funktionen und Arrays

Heute lernst du zwei Werkzeuge, mit denen Programme übersichtlich werden: Funktionen bündeln Code, den du wiederverwenden willst. Arrays speichern mehrere Werte in einer Liste. Arbeite weiter in deinem js-projekt aus dem letzten Block.
Funktionen: Code wiederverwenden
Eine Funktion ist ein benannter Codeblock. Du schreibst ihn einmal und rufst ihn beliebig oft auf. Eine Funktion definierst du mit function, einem Namen, runden Klammern und geschweiften Klammern für den Inhalt.
function begruesse() {
console.log("Hallo und willkommen!");
}
begruesse(); // Aufruf: jetzt läuft der Code
begruesse(); // noch einmal
Die Funktion macht nichts, solange niemand sie aufruft. Aufgerufen wird sie durch ihren Namen mit Klammern, zum Beispiel direkt im Code oder per Klick auf einen Button:
<button onclick="begruesse()">Begrüßen</button>
begruesse, berechneGesamtpreis, zeigeListe. Funktionen aus app.js kannst du in index.html mit onclick aufrufen.Parameter und return
Damit eine Funktion flexibel ist, bekommt sie Parameter: Platzhalter in den Klammern. Beim Aufruf übergibst du Argumente, also die echten Werte.
function begruesse(name) { // name ist der Parameter
console.log("Hallo " + name + "!");
}
begruesse("Lina"); // "Lina" ist das Argument
begruesse("Max");
Mit return gibt eine Funktion einen Wert an den Aufrufer zurück. Danach endet die Funktion.
function addiere(a, b) {
return a + b;
}
const summe = addiere(3, 4);
console.log(summe); // 7
console.log(addiere(10, 5)); // 15
Beispiel: Eine Funktion, die Fahrenheit in Celsius umrechnet. Probiere sie aus:
function fahrenheitZuCelsius(f) {
return (f - 32) * 5 / 9;
}
console.log(fahrenheitZuCelsius(68)); // 20
console.log() zeigt einen Wert nur an. return gibt ihn zurück, sodass du ihn weiterverwenden kannst (in einer Variable, in einer Rechnung, auf der Seite).Lokale Variablen: Wo gilt eine Variable?
Eine Variable, die du in einer Funktion anlegst, gibt es nur dort (lokal). Nach dem Ende der Funktion ist sie weg. Variablen außerhalb aller Funktionen sind global: Sie gelten überall, auch in Funktionen. Auch die Parameter einer Funktion sind lokal.
const gruss = "Hallo"; // global
function zeigeText(name) { // name ist lokal
const satz = gruss + " " + name; // satz ist lokal, gruss ist sichtbar
console.log(satz);
}
zeigeText("Lina");
console.log(gruss); // funktioniert: global
console.log(satz); // Fehler: satz gibt es nur in der Funktion
let und const in jedem { }-Block, zum Beispiel in einem if.Aufgabe 1 – Begrüßungsfunktion
Zeit: ca. 5 Minuten
- Schreibe in
app.jseine Funktionbegruesse(name), die „Hallo …!“ in der Konsole ausgibt. - Rufe sie mit zwei verschiedenen Namen auf.
- Baue in
index.htmleinen Button, der die Funktion mit deinem Namen aufruft.
Aufgabe 2 – Umrechnen
Zeit: ca. 10 Minuten
- Schreibe die Funktion
fahrenheitZuCelsius(f)mitreturn. - Gib das Ergebnis für 50, 68 und 100 Grad Fahrenheit in der Konsole aus.
- Baue ein Eingabefeld und einen Button, die das Ergebnis auf der Seite anzeigen (auf eine Nachkommastelle gerundet).
Arrays: Listen von Werten
Ein Array speichert mehrere Werte in einer Reihenfolge. Die Werte stehen in eckigen Klammern, getrennt durch Kommas. Jedes Element hat eine Nummer, den Index. Der erste Index ist 0.
const filme = ["Matrix", "Shrek", "Inception"];
console.log(filme[0]); // Matrix
console.log(filme[2]); // Inception
console.log(filme.length); // 3 (Anzahl der Elemente)
filme[1] = "Toy Story"; // Element ändern
console.log(filme);
Wähle einen Index und sieh, was im Array steht:
["Matrix", "Shrek", "Inception"]Index
undefined. Der letzte Index ist immer länge - 1: filme[filme.length - 1].Obwohl ein Array mit const angelegt ist, darfst du seine Elemente ändern und Elemente hinzufügen. Nur das ganze Array darfst du nicht neu zuweisen:
const zahlen = [1, 2, 3];
zahlen[0] = 10; // erlaubt
zahlen.push(4); // erlaubt
zahlen = [5, 6]; // Fehler: Assignment to constant variable
Wichtige Array-Werkzeuge
| Schreibweise | Wirkung | Ergebnis |
|---|---|---|
liste.push("x") | hängt ein Element hinten an | Array wird länger |
liste.pop() | entfernt das letzte Element und gibt es zurück | Array wird kürzer |
liste.length | Anzahl der Elemente | Zahl |
liste.join(", ") | macht aus dem Array einen Text | "Matrix, Shrek, Inception" |
liste.includes("Shrek") | prüft, ob ein Element vorkommt | true oder false |
const einkauf = ["Brot", "Milch"];
einkauf.push("Käse");
console.log(einkauf.length); // 3
console.log(einkauf.join(", ")); // Brot, Milch, Käse
console.log(einkauf.includes("Milch")); // true
const letztes = einkauf.pop(); // Käse wird entfernt
console.log(letztes);
Aufgabe 3 – Einkaufsliste
Zeit: ca. 5 Minuten
- Lege ein Array
einkaufmit drei Artikeln an. - Gib den ersten und den letzten Artikel aus (der letzte mit
length). - Füge mit
pusheinen Artikel hinzu und gib die Liste mitjoin(", ")aus.
Funktionen und Arrays zusammen
Funktionen können Arrays als Argument bekommen und Werte daraus zurückgeben:
function letztesElement(liste) {
return liste[liste.length - 1];
}
const tage = ["Mo", "Di", "Mi", "Do", "Fr"];
console.log(letztesElement(tage)); // Fr
console.log(letztesElement([3, 8, 5])); // 5
Eine Funktion kann auch ein Array verändern, das sie bekommt, zum Beispiel mit push:
const liste = [];
function fuegeHinzu(text) {
liste.push(text);
console.log(liste.join(", "));
}
fuegeHinzu("Brot");
fuegeHinzu("Milch");
Math: Runden und Würfeln
Das Objekt Math ist schon eingebaut und enthält Werkzeuge für Zahlen. Du rufst sie mit Math. davor auf.
| Schreibweise | Wirkung | Beispiel |
|---|---|---|
Math.round(x) | auf die nächste ganze Zahl runden | Math.round(4.6) ergibt 5 |
Math.floor(x) | immer abrunden | Math.floor(4.9) ergibt 4 |
Math.ceil(x) | immer aufrunden | Math.ceil(4.1) ergibt 5 |
Math.max(a, b), Math.min(a, b) | größte bzw. kleinste Zahl | Math.max(3, 8) ergibt 8 |
Math.abs(x) | Betrag (ohne Vorzeichen) | Math.abs(-5) ergibt 5 |
Math.sqrt(x) | Quadratwurzel | Math.sqrt(81) ergibt 9 |
Math.PI | die Zahl Pi | 3.14159… |
Math.random() | Zufallszahl von 0 bis unter 1 | z. B. 0.7302… |
Mit Math.random() und Math.floor() würfelst du:
function wuerfeln(seiten) {
return Math.floor(Math.random() * seiten) + 1; // Zahl von 1 bis seiten
}
console.log(wuerfeln(6)); // z. B. 4
console.log(wuerfeln(20)); // z. B. 13
Math.random() * 6 liefert Zahlen von 0 bis unter 6. Mit Math.floor werden es 0 bis 5, und das + 1 macht daraus 1 bis 6.Aufgabe 4 – Würfel
Zeit: ca. 5 Minuten
- Schreibe
wuerfeln(seiten)wie im Beispiel. - Würfle damit dreimal mit einem normalen Würfel und einmal mit einem 20-seitigen Würfel und gib die Ergebnisse in der Konsole aus.
- Baue einen Button „Würfeln“, der das Ergebnis auf der Seite anzeigt.
Abschlussaufgaben
Jetzt wird es anspruchsvoller. Nimm dir Zeit, es müssen nicht alle Aufgaben geschafft werden.
Aufgabe 5 – Preisrechner als Funktion
Zeit: ca. 15 Minuten
Mache aus dem Preisrechner von letzter Woche eine Funktion.
- Schreibe
berechneBrutto(netto, rabattProzent, mwstProzent), die den Bruttopreis zurückgibt. - Rufe sie mit drei verschiedenen Beispielen auf und gib die Ergebnisse auf zwei Nachkommastellen gerundet auf der Seite aus.
- Baue Eingabefelder und einen Button, damit man Nettopreis, Rabatt und Mehrwertsteuer selbst eingeben kann.
Aufgabe 6 – Einkaufsliste mit Buttons
Zeit: ca. 15 Minuten
- Lege ein leeres Array
einkaufan. - Schreibe
fuegeHinzu(artikel)(mitpush) undentferneLetzten()(mitpop). - Schreibe
zeigeListe(), die die Liste mitjoin(", ")auf der Seite anzeigt und darunter die Anzahl der Artikel. - Baue ein Eingabefeld und drei Buttons: „Hinzufügen“, „Letzten entfernen“, „Anzeigen“.
Denkaufgabe: Schreibe eine Funktion tausche(liste), die das erste und das letzte Element vertauscht. Tipp: Du brauchst eine Hilfsvariable, damit kein Wert verloren geht.
Kurz zusammengefasst
Funktionen bündeln Code. Parameter machen sie flexibel, return gibt ein Ergebnis zurück. Arrays speichern Listen, der erste Index ist 0, und mit length, push, pop und join arbeitest du damit. Beides zusammen macht Programme übersichtlich.
