Dieser Artikel fasst häufige Probleme in der Definition der JavaScript -Funktion zusammen. Es enthält gemeinsame Fehler von Anfängern. Teilen Sie es für Ihre Referenz. Die spezifische Zusammenfassung lautet wie folgt:
1. Gleichzeitig mit der Funktionserklärung definiert die JS -Engine auch eine Variable mit demselben Namen wie der Funktionsname. Wenn wir diese Funktion nennen, verwenden wir diese Variable tatsächlich und sie kann beispielsweise vor der Funktionserklärung aufgerufen werden
foo (); // Eine Funktionsvariable wird hier tatsächlich verwendet. Funktion foo () {alert ('Hallo'); }2. Funktionsausdruck, zu diesem Zeitpunkt wird die anonyme Funktion einer Variablen zugewiesen, die beispielsweise nach der Definition verwendet werden muss
foo (); // Ein Fehler wird gemeldet, undefined var foo = function () {alert ('hello'); }3. Funktionsausdruck (mit Funktionsname) wird diese Verwendung am besten vermieden. Zu diesem Zeitpunkt ist der Funktionsname beispielsweise nur intern in Nicht-I-Browsern erhältlich
Bar (5); // Ein Fehler wird gemeldet, undefined var bar = Funktion foo (n) {if (n == 1) return 1; sonst return n * foo (n - 1); } foo (5); // kein IE -Fehler wird gemeldet, undefined Bar (5); //Richtig4. Definition Mit Funktionskonstruktor ist diese Methode ineffizient. Jedes Mal, wenn eine Funktion ausgeführt wird, wird ihre Funktionsbehörde einmal analysiert. Darüber hinaus wird die auf diese Weise deklarierte Funktion den Umfang des aktuellen deklarierten Ortes nicht erben. Es wird beispielsweise nur standardmäßig einen globalen Bereich haben
Funktion foo () {var bar = 'Hallo'; Rückgabefunktion ('alert (bar)'); // Ein Fehler wird gemeldet, die globale variable Balken ist nicht definiert} foo () ();Ich glaube, dass die Beschreibung in diesem Artikel einen gewissen Referenzwert für das Lernen aller JavaScript -Webprogramme hat.