MINT lernen

Funktionen

Drei fast gleiche Code-Blöcke, drei Stellen für denselben Tippfehler — wie baut man daraus einen Baustein, den man nur einmal schreibt?

1

Funktionen definieren und aufrufen

Eine Funktion ist ein benannter Block, der erst läuft, wenn man ihn aufruft — beliebig oft und mit verschiedenen Werten.

function begruesse(name) {
  console.log("Hallo " + name + "!");
}
begruesse("Mia");
begruesse("Tom");
  • Definition:function name(parameter) { … } legt den Baustein an — dabei läuft noch nichts.
  • Aufruf:begruesse("Mia"); führt den Block aus; ohne Aufruf passiert nie etwas.
  • Parameter:Platzhalter in der Definition, hier name.
  • Argument:der konkrete Wert beim Aufruf, hier "Mia"; er wird in den Parameter kopiert.
  • Mehrere Parameter:durch Komma getrennt; die Reihenfolge der Argumente muss passen.
2

Rückgabe mit return

Oft soll eine Funktion ein Ergebnis liefern statt es nur auszugeben. Das macht return.

function flaeche(a, b) {
  return a * b;
}
let zimmer = flaeche(4, 3);
let flur = flaeche(5, 2);
console.log(zimmer + flur);
  • return:beendet die Funktion und gibt den Wert an die Aufrufstelle zurück.
  • Aufruf als Wert:flaeche(4, 3) „ist“ danach 12 und kann gespeichert oder weiterverrechnet werden.
  • console.log ≠ return:console.log zeigt nur an; mit dem angezeigten Wert kann das Programm nicht weiterrechnen.
  • Lokal:Variablen, die in der Funktion mit let angelegt werden, gibt es nur dort.
  • Wozu?:kein doppelter Code, Änderungen an nur einer Stelle, sprechende Namen für Teilaufgaben.

Zerlege das Hauptprogramm: Klicke einen Block an (oder Tab + Enter), um ihn in die Funktion auszulagern. Was sich zwischen den Blöcken unterscheidet, wird zum Parameter. Achte auf Gruppe C.

Doppelten Code auslagern

Halte fest: Was in allen Blöcken gleich ist, wandert in die Funktion; was sich unterscheidet, wird zum Parameter und beim Aufruf als Argument übergeben.

Merke

function name(p1, p2) { …; return ergebnis; }  ·  Aufruf: let x = name(a1, a2);

3

Allgemeine Hinweise

Definiert heißt nicht ausgeführt

Fehlt der Aufruf, passiert nichts — und es gibt auch keine Fehlermeldung. Prüfe: Steht irgendwo name(…)?

Ein Name, eine Aufgabe

Nenne Funktionen nach dem, was sie tun: berechnePreis, zeigePunkte. Wird ein Name zu lang, macht die Funktion wahrscheinlich zu viel.

Nach return ist Schluss

Zeilen hinter return im selben Block werden nie ausgeführt. Ein console.log dahinter bleibt stumm.

Videos