Es gibt zwei Möglichkeiten, Funktionen in JavaScript zu deklarieren: Funktionsdeklarativ und Funktionsausdruck.
Die Unterschiede sind wie folgt:
1). Für Funktionen, die durch die Funktion definierte Methoden definiert sind, ist der Funktionsname erforderlich, während der Funktionsname des Funktionsausdrucks optional ist.
2). Funktionen, die durch die Funktion definierte Methoden definiert werden, können vor der Funktionserklärung aufgerufen werden, während Funktionen von Funktionsausdrücken erst nach der Deklaration aufgerufen werden können.
3). Funktionen, die durch die Funktion definierte Methoden definiert sind, sind keine realen Deklarationen. Sie können nur weltweit oder in anderen Funktionen verschachtelt, aber sie können nicht in Schleifen, Bedingungen oder versuchen/fangen/schließlich und nicht
Funktionsausdrücke können überall deklariert werden.
Im Folgenden finden Sie zwei Methoden, um die Funktion zu definieren:
Die Codekopie lautet wie folgt:
// Funktionsklarative Formel
Funktion Begrüßung () {
console.log ("Hallo Welt");
}
// Funktionsausdruck
var greeting = function () {
console.log ("Hallo Welt");
}
Hier ist ein interessantes JavaScript:
Die Codekopie lautet wie folgt:
Funktion f () {console.log ('Ich bin draußen!'); }
(function () {
if (false) {
// die Funktion f wiederholen f
Funktion f () {console.log ('Ich bin drinnen!'); }
}
F();
} ());
Was wird Ausgabe? Die erste Reaktion sollte "Ich bin draußen" sein. Infolgedessen wird in Chrom "Ich bin Inside" ausgegeben, IE11 hat direkt einen Fehler und die niedrigere Version von Firefox -Ausgängen "Ich bin draußen" gemeldet ...
Das Ergebnis der Chromausgabe spiegelt eindeutig die Eigenschaften von Funktionen wider, die mit Funktionsklarativausdrücken deklariert sind - Funktionen können vor der Deklaration aufgerufen werden.
Der IE -Fehler zeigt, dass das Objekt fehlt, da die Funktionserklärung in der Bedingung ist, die gegen das Funktionsprinzip der Funktionserklärung verstößt.
Funktionsumfang: Ausdrücke:
Wenn die vom Funktionsausdruck deklarierte Funktion einen Funktionsnamen hat, entspricht der Funktionsname einer lokalen Variablen der Funktion und kann nur innerhalb der Funktion aufgerufen werden. Zum Beispiel eine Kastanie:
Die Codekopie lautet wie folgt:
var f = Funktion Fakt (x) {
if (x <= 1)
Rückkehr 1;
anders
return x*fact (x-1);
};
alarm (fact ()); // Uncurvtal ReferenceError: Tatsache ist nicht definiert
FACT () kann innerhalb der Funktion aufgerufen werden, aber ein Fehler wird gemeldet, wenn es außerhalb der Funktion aufgerufen wird: Tatsache ist nicht definiert
Das obige dreht sich alles um diesen Artikel, ich hoffe es gefällt euch.