Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Analyse des Unterschieds zwischen Funktionsdeklaration und Funktionsausdruck in Javascript_Javascript-Kenntnissen

Eine kurze Analyse des Unterschieds zwischen Funktionsdeklaration und Funktionsausdruck in Javascript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:13:53988Durchsuche

Es gibt zwei Möglichkeiten, Funktionen in JavaScript zu deklarieren: Funktionsdeklaration und Funktionsausdruck.

Die Unterschiede sind wie folgt:

1). Für durch Funktionsdeklaration definierte Funktionen ist der Funktionsname erforderlich, während der Funktionsname des Funktionsausdrucks optional ist.

2). Bei durch Funktionsdeklaration definierten Funktionen kann die Funktion vor der Funktionsdeklaration aufgerufen werden, während die Funktion des Funktionsausdrucks erst nach der Deklaration aufgerufen werden kann.

3). Durch Funktionsdeklaration definierte Funktionen sind keine echten Deklarationen. Sie können nur global oder verschachtelt in anderen Funktionen erscheinen, aber sie können nicht in Schleifen, Bedingungen oder try/catch/finally erscheinen und

Funktionsausdrücke können überall deklariert werden.

Die Funktionen werden im Folgenden auf zwei Arten definiert:

Code kopieren Der Code lautet wie folgt:

//Funktionsdeklaration
Funktion Greeting(){
console.log("Hallo Welt");
}
//Funktionsausdruck
var Greeting = function(){
console.log("Hallo Welt");
}

Ein interessantes Javascript unten:

Code kopieren Der Code lautet wie folgt:

function f() { console.log('Ich bin draußen!'); (Funktion () {
if(false) {
// Wiederholen Sie die Deklaration der Funktion f
Funktion f() { console.log('Ich bin drinnen!'); }
f();
}());


Was wird ausgegeben? Die erste Reaktion sollte „Ich bin draußen“ sein. Das Ergebnis ist „Ich bin drinnen“, IE11 meldet direkt einen Fehler und die niedrigere Version von Firefox gibt „Ich bin draußen“ aus. .

Die von Chrome ausgegebenen Ergebnisse spiegeln deutlich die Merkmale von Funktionen wider, die mithilfe von Funktionsdeklarationen deklariert wurden – die Funktion kann aufgerufen werden, bevor sie deklariert wird.

IE-Fehler zeigt an, dass das Objekt fehlt, weil die Funktion in der Bedingung deklariert ist, was gegen das Prinzip der Funktionsdeklaration verstößt.

Umfang des Funktionsausdrucks:

Wenn die durch den Funktionsausdruck deklarierte Funktion einen Funktionsnamen hat, entspricht der Funktionsname einer lokalen Variablen der Funktion und kann nur innerhalb der Funktion aufgerufen werden:

var f = Funktion fact(x) {
Wenn (x <= 1)
                       return 1;
                                                                                                                                                                                                                                                                                                                     return x*fact(x-1);
                  };
// Nicht erfasster Referenzfehler: Fakt ist nicht definiert



fact() kann innerhalb der Funktion aufgerufen werden, aber wenn es außerhalb der Funktion aufgerufen wird, wird ein Fehler gemeldet: fact ist undefiniert

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.

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