Heim  >  Artikel  >  Web-Frontend  >  Analyse des Unterschieds zwischen JavaScript-Funktionsdeklaration und Variablendeklaration

Analyse des Unterschieds zwischen JavaScript-Funktionsdeklaration und Variablendeklaration

不言
不言Original
2018-09-11 15:14:341469Durchsuche

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!

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