Heim > Artikel > Web-Frontend > Was ist der Unterschied zwischen Funktionsdeklaration und Funktionsausdruck?
Es gibt zwei Möglichkeiten, Funktionen zu definieren: Funktionsdeklaration und Funktionsausdruck.
Die Syntax der Funktionsdeklaration lautet wie folgt:
function functionName(arg0,arg1){//函数体}
Zuerst ist das Funktionsschlüsselwort, dann der Name der Funktion. Dies sind die beiden Möglichkeiten, den Funktionsnamen anzugeben. Eine der wichtigsten Funktionen der Funktionsdeklaration ist die Funktionsdeklarationsförderung, was bedeutet, dass die Funktionsdeklaration vor der Ausführung des Codes gelesen wird. Das bedeutet, dass Sie die Funktionsdeklaration nach der Anweisung platzieren können, die sie aufruft. Zum Beispiel:
a();function a(){alert("a");}//a
Dieses Beispiel wird nicht schief gehen, da die Funktionsdeklaration vor der Ausführung des Codes gelesen wird.
Der zweite Weg, eine Funktion zu erstellen, ist ein Funktionsausdruck. Der folgende ist der gebräuchlichste Weg:
var a = function(arg0,arg1){//函数体};
Diese Form sieht genauso aus wie eine reguläre Variablenzuweisungsanweisung, das heißt, eine Funktion zu erstellen Weisen Sie es der Variablen a zu. Die in diesem Fall erstellte Funktion wird als anonyme Funktion bezeichnet, da nach dem Funktionsschlüsselwort kein Bezeichner steht.
Funktionsausdrücken muss wie anderen Ausdrücken vor der Verwendung ein Wert zugewiesen werden. Der folgende Code verursacht einen Fehler:
a();var a = function(){alert("a");};//错误//补充说明:使用该方法定义函数,只有变量声明提前了,变量初始化代码仍在原来的位置
1 Der Funktionsname ist in der Funktionsdeklaration erforderlich, aber möglich der Funktionsausdruck gewählt.
//函数声明 function sum(a, b) { return a + b; } alert(sum(1, 2));
//函数表达式 /* var s = function sum(a, b) { return a + b; } alert(s(1, 2)); */ var s = function(a, b) { return a + b; } alert(s(1, 2)); //以上两种都可以
2. Mit Funktionsdeklarationen definierte Funktionen können vor der Funktionsdeklaration aufgerufen werden, während mit Funktionsausdrücken definierte Funktionen erst nach der Deklaration aufgerufen werden können.
Der Hauptgrund ist, dass die Reihenfolge, in der der Parser diese beiden Definitionen liest, unterschiedlich ist: Der Parser liest die Funktionsdeklaration, das heißt, die Funktionsdeklaration kann an jeder Position und für Funktionsausdrücke aufgerufen werden. Der Parser startet die Ausführung erst, wenn er die Zeile liest, in der sich der Funktionsausdruck befindet (Einzelheiten finden Sie in Teil 1, „Wie Funktionen definiert werden“).
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Funktionsdeklaration und Funktionsausdruck?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!