Heim > Web-Frontend > js-Tutorial > Was ist der Unterschied zwischen Funktionsdeklaration und Funktionsausdruck?

Was ist der Unterschied zwischen Funktionsdeklaration und Funktionsausdruck?

一个新手
Freigeben: 2017-10-10 10:24:58
Original
1997 Leute haben es durchsucht


1. Möglichkeiten, Funktionen zu definieren

Es gibt zwei Möglichkeiten, Funktionen zu definieren: Funktionsdeklaration und Funktionsausdruck.
Die Syntax der Funktionsdeklaration lautet wie folgt:

function functionName(arg0,arg1){//函数体}
Nach dem Login kopieren

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
Nach dem Login kopieren

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){//函数体};
Nach dem Login kopieren

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");};//错误//补充说明:使用该方法定义函数,只有变量声明提前了,变量初始化代码仍在原来的位置
Nach dem Login kopieren

2. Der Unterschied zwischen Funktionsdeklaration und Funktionsausdruck

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));
Nach dem Login kopieren
//函数表达式
    /* 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));    //以上两种都可以
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage