Ein Anweisungsblock besteht aus zwei oder mehreren Anweisungen, die innerhalb einer übergeordneten Anweisung (z.B. bedingte Verzwigung oder Schleife) oder innerhalb einer Funktion stehen. Alle Anweisungen, die innerhalb einer selbst definierten Funktion stehen, bilden einen Anweisungsblock. Ein Anweisungsblock wird durch eine öffnende geschweifte Klammer { begonnen und durch eine schließende geschweifte Klammer } beendet. Sie können die geschweiften Klammern jeweils in eine eigene Zeile schreiben, so wie in den Beispielen. Es ist aber auch erlaubt, die Klammern in der gleichen Zeile zu notieren wie die Anweisungen. Bei bedingten Verzweigungen oder Schleifen müssen Sie solche Anweisungsblöcke notieren, sobald mehr als eine Anweisung von der Bedingung abhängig ausgeführt werden soll. Bei Funktionen müssen Sie immer Anfang und Ende der Funktion durch geschweifte Klammern markieren. Alles, was innerhalb der Funktion steht, ist daher ein Anweisungsblock. function SageQuadrat(x) { Anweisungsblöcke können natürlich auch verschachtelt sein, so wie in Beispiel 4 oben. function SagEinmaleins(x) { var Ergebnis = x * x; if(Ergebnis > 100)
{ alert(Ergebnis);
Innerhalb des JavaScript-Bereichs, vozugsweise im Dateikopf, können selbst definierte Funktionen implementiert werden. Funktionen sind Anweisungsblöcke, die bei Bedarf aufgerufen werden. Der Vorteil von Funktionen ist, das sie immer wieder und von verschiedenen Stellen aufgerufen werden können. So müssen redundante Anweisungen nicht immer neu geschrieben werden, sondern können zu einer Funktion zusammengefasst werden. Eine Funktion beschreibt also eine Klasse von Problemen, nicht die bestimmte Ausprägung eines Problems. Der Kopf von Funktionen beginnt immer mit dem Schlüsselwort "function", gefolgt von einem frei zu vergebenden Namen (mit den gleichen Einschränkungen wie bei den Variablennamen). Auf diesen folgen wiederum zwei runde Klammern () und dann die in geschweifte Klammern {...} gesetzten Anweisungen (Anweisungsblock). function Funktionsname () { Der Funktion können beim Aufruf auch Werte übergeben werden, mit denen die Funktion arbeiten soll. Diese Werte, auch Parameter genannt, stehen dann innerhalb der runden Klammern (). Die Parameter werden in der Regel beim Aufruf belegt. Dabei sind nicht die Namen der Parameter entscheidend, als vielmehr ihre Anzahl und Reihenfolge. <html> Es können auch mehrere Parameter übergeben werden, die dann mit Kommata getrennt werden. Die Funktion Quadrat(x) errechnet im Beispiel oben das Quadrat von x und gibt das Ergebnis in einem alert-Fenster aus. Sie könnte von verschiedenen Stellen im HTML-Code aufgerufen werden. Damit ist sie für alle Quadratberechnungen zu gebrauchen. In diesem Fall bekommt die Funktion beim Aufruf eine Zahl als Parameter übergeben. In JavaScript ist es möglich Funktionen mit einer variablen Anzahl von Parametern zu erzeugen, dabei werden die runden Klammern leer gelassen und die Parameter aus dem Array funktionsname.arguments.[i] ausgelesen. Soll zum Beispiel eine Funktion die Summme mehrere Werte ermitteln, könnte sie so aussehen: function Summe() { for (var i=0;i<summe.arguments.length;i++) { return Ergebnis; Eine Schleife, hier mit dem Zähler i, liest das Array nacheinander aus und addiert die Werte auf. Die Aufrufe der Funktion könnten folgendermaßen aussehen: x=summe(23,41,65); Siehe hierzu auch Beispiel 12. Im umgekehrten Fall, wenn weniger Parameter im Aufruf angegeben werden als in der Funktion vereinbart sind, bekommen die fehlenden Parameter automatisch den Wert null wie im folgenden Beispiel: function test(s) { Aufruf: test(); Die bislang gezeigten Funktionen wurden aufgerufen und liefen dann einfach ab ohne etwas der aufrufenden Instanz zurückzumelden. Soll die Funktion Quadrat(x) nun universell zu verwenden sein, empfielt es sich, die Ausgabe des Ergebnisses und die Berechnung zu trennen. Dafür muß die Funktion geringfügig modifiziert werden: function Quadrat(Zahl) { Das Schlüsselwort return liefert jetzt die Variable Ergebnis an die aufrufende Instanz zurück. Der Aufruf müßte daher ebenfalls verändert werden: onClick="x=Quadrat(6);alert(x);" Die Funktion wird durch Quadrat(6) aufgerufen und ausgeführt. Das Ergebnis wird durch return zurückgeliefert und landet in der Variablen x. Daraufhin wird es durch eine alert-Box ausgegeben. Da der Interpreter die Funktion immer bei der return Anweisung verläßt und zurückspringt, steht diese Anweisung in der Regel am Ende. Im Beispiel 7wird die Funktion Quadrat() mit dem Parameter zahlenfeld.value aufgerufen. zahlenfeld.value ist der Wert der im Feld zahlenfeld ducrh den Nutzer eingetragen wurde. Das Ergebnis wird dann in das selbe Feld wieder eingetragen.
Der JavaScript-Code von Funktionen wird nur ausgeführt, wenn er explizit aufgerufen wird. Im obigen Beispiel erfolgt der Aufruf mit Hilfe eines buttons und der Anweisung onClick. Wenn der Anwender auf den button klickt, wird die Funktion mit dem entsprechenden Parameter ausgeführt. Funktionen können sich auch gegenseitig aufrufen: function FunktionsnameA () { Hier wird innerhalb der Funktion FunktionsnameA() die Funktion FunktionsnameB() aufgerufen. Unbedingt zu beachten ist der Gültigkeitsbereich von Variablen. globale Variable sind von überall her auszulesen und zu verändern. Sie werden ausserhalb von Funktionen deklariert. <script language="JavaScript"> function Quadrat(Zahl) { lokale Variable sind nur innerhalb einer Funktion gültig und werden auch innerhalb einer Funktion deklariert. Sie können auch nur dort ausgelesen oder belegt werden. Sie können lokale Variable mit dem selben Namen innerhalb verschiedener Funktionen verwenden (lokale Variable) und mit verschiedenen Werten belegen. Wegen der Übersichtlichkeit sollte man solche Fälle jedoch vermeiden. <script language="JavaScript">
Es gibt eine Reihe Standardfunktionen in JavaScript, die Sie verwenden können: (NaN steht für Not a Number und signalisiert das es sich nicht um eine Zahl handelt)
|