Heim  >  Artikel  >  Web-Frontend  >  Der Unterschied zwischen den beiden Formen der Funktionsdeklaration

Der Unterschied zwischen den beiden Formen der Funktionsdeklaration

yulia
yuliaOriginal
2018-09-08 16:49:021934Durchsuche

Wir wissen, dass das Schlüsselwort function zum Definieren von Funktionen verwendet wird. Funktionsdefinitionen können als Funktionsdefinitionsausdrücke oder in Form von Anweisungen geschrieben werden. Zum Beispiel die folgenden zwei Schreibweisen:

var f = function(x){return x+1;}   //将表达式赋值给一个变量  函数表达式
function f(x){return x+1;}         //含有变量的语句        函数声明

Obwohl Funktionsdeklarationsanweisungen und Funktionsdefinitionsausdrücke denselben Funktionsnamen enthalten, gibt es dennoch Unterschiede zwischen ihnen.
Dasselbe: Beide Methoden erstellen neue Funktionsobjekte; beide werden „erweitert“ (in Funktionsanweisungen definierte Funktionen werden explizit an den Anfang des Skripts oder der Funktion verschoben, sodass sie im gesamten Skript sichtbar sind); : Der Funktionsname in der Funktionsdeklarationsanweisung ist ein Variablenname, und die Variable zeigt auf das Funktionsobjekt. Genau wie beim Deklarieren von Variablen über var werden in Funktionsanweisungen definierte Funktionen im Voraus am Anfang des Skripts oder der Funktion angezeigt, sodass sie im gesamten Skript sichtbar sind.
1 Mit var werden nur Variablen im Voraus deklariert – die Initialisierung In der ursprünglichen Position sind jedoch bei Verwendung der Funktionsdeklarationsanweisung sowohl der Funktionsname als auch der Funktionskörper im Voraus
Zusammenfassung: Vereinfacht gesagt kann nur die Funktionsausdrucksmethode (dh die var-Deklarationsmethode) verwendet werden wird aufgerufen, nachdem die var-Anweisung deklariert wurde. Und die Funktionsdeklaration (d. h. die Funktionsdeklarationsmethode) kann vor der Funktionsdeklaration aufgerufen werden.
Diese Situationen liegen daran, dass der Funktionsausdruck der Variablen f während der Funktionsausführungsphase zugewiesen wird, während die Funktionsdeklaration der Variablen f zugewiesen wurde, bevor der Code ausgeführt wird, also während der Code-Analysephase
Wir können uns den folgenden Code ansehen:

console.log(f,"函数前")
var f = function (x) {
      return x + 1;//函数表达式
 }
console.log(f,"函数后")

Und das Ergebnis der Ausführung dieses Codes:

Der Unterschied zwischen den beiden Formen der Funktionsdeklaration

console.log(f,"函数前")
function f(x) {
   return x + 1;//函数声明
}
console.log(f,"函数后")

Das Ergebnis:

Der Unterschied zwischen den beiden Formen der Funktionsdeklaration

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen den beiden Formen der Funktionsdeklaration. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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