Informatik :: JavaScript :: Funktionen

Funktionen

[Allgemeines] [Deklaration] [Aufruf] [Rekursive Funktionen] [Aufgaben]

Allgemeines

In der imperativen Programmierung sind Funktionen ein wichtiges Mittel zur Modularisierung. Oft benötigter Code kann in Funktionen zusammengefasst werden und über den Namen der Funktion nach Bedarf aufgerufen werden.

Funktionen können einen oder mehrere Aufrufparameter haben und liefern nach ihrem Ende i.d.R. einen Funktionswert zurück.

In JavaScript gibt es bereits einige implementierte Funktionen.
So z.B. parseInt(Zahl), parseFloat(Zahl) oder die mächtige Funktion eval(Term), die den numerischen Wert des übergebenen Termes (Rechenausdruck) zurückgibt.
Weitere objektunabhängige Funktionen findet man hier.

Wir wollen uns anschauen, wie man eine benutzerdefinierte Funktion erstellt.


Seitenanfang

Deklaration

Bevor man eine Funktion verwenden, sprich: aufrufen kann, muss man sie deklarieren (bekannt machen, implementieren).

Syntax

function Funktionsname (p1, p2, ...)
{
  Anweisung(en);
  return Rückgabewert;
}

Hinweise:

Beispiel:

function monatszins (K, p)
{
  jahreszins = K * p / 100;
  return jahreszins / 12;
}

oder kürzer:

function monatszins (K, p)
{
  return K * p / 100 / 12;
}

Erklärung:
Die Funktion monatszins bekommt bei einem Aufruf einen Wert für K und einen Wert für p als Parameter übergeben.
Die Funktion berechnet die Zinsen für einen Monat und gibt diesen Wert der aufrufenden Stelle zurück.

Seitenanfang

Aufruf

Der Vorteil von Funktionen ist, dass man sie einerseits an beliebiger Stelle im Programm, d.h. im JavaScript-Bereich verwenden kann.
Andererseits kann innerhalb erlaubter HTML-Tags wie z.B. <body...>, <a href...> oder in einem Formular-Tag wie <input...> eine selbst definierte Funktion dann mit Hilfe eines Event-Handlers aufgerufen werden. Dazu später mehr.

Beispiel:

var kapital, zinssatz;
kapital = prompt("Bitte geben Sie das Kapital ein! ");
zinssatz = prompt("Bitte geben Sie den Zinssatz ein! ");
document.write("Der monatliche Zins beträgt " + monatszins(kapital, zinssatz));

Erklärung:
Kapital und Zinssatz können eingegeben werden.
Während der Ausgabe durch die Methode document.write wird die Funktion monatszins mit den Werten von kapital und zinssatz aufgerufen.
Diese oben deklarierte Funktion monatszinssatz gibt dem Ausgabestream den von der Funktion berechneten Wert zurück, der dann mit dem Text ausgegeben wird.


Seitenanfang

Rekursive Funktionen

Rein intuitiv programmiert man immer iterativ. Die Iteration (v. lat. iterare "wiederholen") ist in der Mathematik eine Methode, sich der Lösung eines Rechenproblems schrittweise, aber zielgerichtet anzunähern. Sie besteht in der wiederholten Anwendung desselben Rechenverfahrens.
In der Informatik bedeutet Iteration, wenn ein Zugriff schrittweise, beziehungsweise wiederholt, auf Datenstrukturen erfolgt, beispielsweise bei einer FOR-Schleife.

Als Rekursion (lat. recurrere "zurücklaufen") bezeichnet man die Technik in Mathematik, Logik und Informatik, eine Funktion durch sich selbst zu definieren (rekursive Definition).

Jeder Aufruf der rekursiven Funktion muss sich durch Entfalten der rekursiven Definition in endlich vielen Schritten auflösen lassen. Umgangssprachlich sagt man, sie darf nicht in eine Endlosschleife geraten.

Beispiel:

Die Funktion sum(n) soll zu jeder Zahl n die Summe der ersten n natürlichen Zahlen berechnen. Sie ist iterativ folgendermaßen definiert:
Rekursive Funktion:

function sum(n)
{
  if (n == 0) var summe = 0;   //Rekursionsanfang
  else summe = sum(n-1) + n;   //Rekursionsschritt
  return summe;
}

Iterative Funktion:

function sum(n)
{
  var summe = 0;
  for (i=1; i<=n; i++) summe = summe + i;
  return summe;
}

Rein mathematische Funktion mit Hilfe der Gaußschen Summenformel:

function sum(n)
{
  return n * (n + 1) / 2;
}


Seitenanfang

Aufgaben

  1. Übungen
  2. n Fakultät
  3. Kapital nach t Jahren
  4. Sortierfunktion