Heim > Artikel > Web-Frontend > Analyse des Unterschieds zwischen JavaScript-Funktionsdeklaration und Variablendeklaration
Der Inhalt dieses Artikels befasst sich mit der Analyse des Unterschieds zwischen JavaScript-Funktionsdeklaration und Variablendeklaration. Ich hoffe, dass er für Freunde hilfreich ist.
Heute löste eine weitere Frage einen Kampf zwischen mir und den Grundlagen von JS aus: Erstens:
var getName = function(){alert(1)}; function getName(){alert(2)}; getName();// 1
oder
function getName(){alert(2)}; var getName = function(){alert(1)}; getName();// 1
Warum habe ich die Reihenfolge der Deklarationen geändert, aber das Ergebnis wurde trotzdem ausgegeben? Der Wert einer Funktion, die in der Form var
deklariert wurde?
Jemand antwortete mir und sagte: „Ah, die Variablen werden erhöht ...“, Mein anfängliches Verständnis ist, dass selbst wenn die Variablen erhöht werden, es nach der Erhöhung der ersten Situation so sein sollte Dies:
var getName; getName = function(){alert(1)}; function getName(){alert(2)};
Die endgültige Ausgabe sollte 2 sein (sehr vernünftig).
Wie jeder weiß, werden nicht nur var
Deklarationen erweitert, sondern auch in der Form von function fn(){}
deklarierte Funktionen werden an die höchste Spitze des Geltungsbereichs befördert und dann Es ist die Förderung von Variablen.
Einzelheiten finden Sie im folgenden Beispiel:
fn();//Uncaught TypeError: fn is not a function var fn = function(){console.log(1)};
aber
fn();//2 var fn = function(){console.log(1)}; function fn(){console.log(2)}
reicht aus, um zu zeigen, dass die Funktionsverbesserung aggressiver ist.
Verwandte Empfehlungen:
Beispiel zur Javascript-Variablendeklaration, Analyse_Javascript-Kenntnisse
Einführung in die globalen Variablendeklarationen von JavaScript sowie Vor- und Nachteile
Das obige ist der detaillierte Inhalt vonAnalyse des Unterschieds zwischen JavaScript-Funktionsdeklaration und Variablendeklaration. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!