Was ist der Unterschied zwischen var function_Name = function () {} und function_Name () {} in JavaScript?


Antwort 1:

Sprechen wir über den Unterschied und warum Sie den einen oder anderen verwenden.

Beide heben functionName an den Anfang des Bereichs. Grundsätzlich wird die Bezeichnung functionName in der gesamten übergeordneten Funktion als gültiges Symbol registriert. Es kann sogar durch Code referenziert werden, der vor der Deklaration auftritt. var und function machen das automatisch.

Beim Heben geht es jedoch um Deklaration - nicht um Definition. Ein hochgezogener var wird erkannt, hat aber keinen Anfangswert. console.log (x); var x = 42; wird nicht mit "Referenzfehler: x ist nicht deklariert" angehalten, aber es wird undefiniert angezeigt - x kann erst verwendet werden, wenn wir es definieren.

Funktionsdeklarationen (function functionName () {}) sind etwas anders. Funktionsname ist nicht nur vordeklariert, sondern auch vordefiniert, um auf unseren Code zu verweisen. Also functionName (); function functionName () {} wird tatsächlich funktionieren, obwohl es so aussieht, als würden wir functionName aufrufen, bevor es definiert ist.

Warum den einen oder anderen benutzen?

Verwenden Sie das var-Konstrukt, um mehr Kontrolle in Ihrem Code auszuüben. Wenn Sie in großen Dateien arbeiten oder wenn ein anderer Code (oder andere Personen) Ihre Funktion vorzeitig aufrufen, können Sie var verwenden, um die Funktion bis zum richtigen Zeitpunkt undefiniert zu halten.

Verwenden Sie das Funktionskonstrukt für Dienstprogrammfunktionen, die jederzeit von einem beliebigen Code aufgerufen werden können, insbesondere wenn Sie allgemeinen Code in einem Abschnitt Ihrer Quelldatei gruppieren.