JavaScript-Funktionen werden mit dem Schlüsselwortfunction
definiert.
Sie können eine Funktionsdeklaration oder einen Funktionsausdruck verwenden.
Funktionsdeklarationen
Zu Beginn dieses Lernprogramms haben Sie gelernt, dass Funktionen mit der folgenden Syntax deklariert werden:
// auszuführender Code
}
Deklarierte Funktionen werden nicht sofort ausgeführt. Sie werden „zur späteren Verwendung gespeichert“ und werden später ausgeführt, wenn sie aufgerufen werden.
Beispiel
Rückgabe a * b;
}
Probieren Sie es selbst aus “
Semikolons werden verwendet, um ausführbare JavaScript-Anweisungen zu trennen.
Da eine Funktionsdeklaration keine ausführbare Anweisung ist, ist es nicht üblich, sie mit einem Semikolon zu beenden.
Funktionsausdrücke
Eine JavaScript-Funktion kann auch mit einem Ausdruck definiert werden.
Ein Funktionsausdruck kann in einer Variablen gespeichert werden:
Beispiel
Probieren Sie es selbst aus “
Nachdem ein Funktionsausdruck in einer Variablen gespeichert wurde, kann die Variable als Funktion verwendet werden:
Beispiel
var z = x(4, 3);
Probieren Sie es selbst aus “
Die obige Funktion ist eigentlich eine anonyme Funktion (eine Funktion ohne Namen).
In Variablen gespeicherte Funktionen benötigen keine Funktionsnamen. Sie werden immer unter Verwendung des Variablennamens aufgerufen (aufgerufen).
Die obige Funktion endet mit einem Semikolon, da sie Teil einer ausführbaren Anweisung ist.
Der Function() -Konstruktor
Wie Sie in den vorherigen Beispielen gesehen haben, werden JavaScript-Funktionen mit dem Schlüsselwort function
definiert.
Funktionen können auch mit einem integrierten JavaScript-Funktionskonstruktor namens Function()
definiert werden.
Beispiel
var x = myFunction(4, 3);
Probieren Sie es selbst aus “
Sie müssen den Funktionskonstruktor eigentlich nicht verwenden. Das obige Beispiel ist das gleiche wie das Schreiben:
Beispiel
var x = myFunction(4, 3);
Probieren Sie es selbst aus “
In den meisten Fällen können Sie die Verwendung des Schlüsselworts new
in JavaScript vermeiden.
Function Hoisting
Zu Beginn dieses Tutorials haben Sie etwas über „Hoisting“ (JavaScript Hoisting) gelernt.
Hoisting ist das Standardverhalten von JavaScript, Deklarationen an den Anfang des aktuellen Bereichs zu verschieben.
Hoisting gilt für Variablendeklarationen und Funktionsdeklarationen.
Aus diesem Grund können JavaScript-Funktionen aufgerufen werden, bevor sie deklariert werden:
Funktion myFunction(y) {
Rückgabe y * y;
}
Mit einem Ausdruck definierte Funktionen werden nicht angehoben.
Selbstaufrufende Funktionen
Funktionsausdrücke können „selbstaufrufend“ gemacht werden.
Ein selbstaufrufender Ausdruck wird automatisch aufgerufen (gestartet), ohne aufgerufen zu werden.
Funktionsausdrücke werden automatisch ausgeführt, wenn dem Ausdruck () folgt.
Sie können eine Funktionsdeklaration nicht selbst aufrufen.
Sie müssen Klammern um die Funktion hinzufügen, um anzuzeigen, dass es sich um einen Funktionsausdruck handelt:
Beispiel
var x = „Hallo!!“; // Ich werde mich selbst anrufen
})();
Probieren Sie es selbst aus “
Die obige Funktion ist eigentlich eine anonyme selbstaufrufende Funktion (Funktion ohne Namen).
Funktionen können als Werte verwendet werden
JavaScript-Funktionen können als Werte verwendet werden:
Beispiel
return a * b;
}
var x = myFunction(4, 3);
Probieren Sie es selbst aus “
JavaScript-Funktionen können in Ausdrücken verwendet werden:
Beispiel
return a * b;
}
var x = myFunction(4, 3) * 2;
Probieren Sie es selbst aus “
Funktionen sind Objekte
Der Operator typeof
in JavaScript gibt „function“ für Funktionen zurück.
JavaScript-Funktionen können jedoch am besten als Objekte beschrieben werden.
JavaScript-Funktionen haben sowohl Eigenschaften als auch Methoden.
Die Eigenschaft arguments.length
gibt die Anzahl der Argumente zurück, die beim Aufruf der Funktion empfangen wurden:
Beispiel
Argumente zurückgeben.length;
}
Probieren Sie es selbst aus “
Die toString()
-Methode gibt die Funktion als String zurück:
Beispiel
return a * b;
}
var txt = myFunction.toString();
Probieren Sie es selbst aus “
Eine Funktion, die als Eigenschaft eines Objekts definiert ist, wird als Methode für das Objekt bezeichnet.
Eine Funktion zum Erstellen neuer Objekte wird als Objektkonstruktor bezeichnet.
Pfeilfunktionen
Pfeilfunktionen ermöglicht eine kurze Syntax zum Schreiben von Funktionsausdrücken.
Sie benötigen nicht das Schlüsselwort function
, das Schlüsselwort return
und die geschweiften Klammern.
Beispiel
var x = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;
Probieren Sie es selbst aus “
Pfeilfunktionen haben keine eigenen this
.Sie eignen sich nicht gut zum Definieren von Objektmethoden.
Pfeilfunktionen werden nicht angehoben. Sie müssen definiert werden, bevor sie verwendet werden.
Die Verwendung von const
ist sicherer als die Verwendung von var
, da ein Funktionsausdruck immer ein konstanter Wert ist.
Sie können das Schlüsselwort return
und die geschweiften Klammern nur weglassen, wenn die Funktion eine einzelne Anweisung ist. Aus diesem Grund könnte es eine gute Angewohnheit sein, sie immer zu behalten:
Beispiel
Probieren Sie es selbst aus “
Pfeilfunktionen werden in IE11 oder früher nicht unterstützt.