Javascript: Leistung von var functionName = function () {} vs Funktion functionName () {} [duplizieren]

8

Was sind Performance-Implikationen (falls vorhanden) für Syntaxanalyse und Laufzeit bei Verwendung von Funktionsausdruck und Deklaration in JavaScript?

Zum Beispiel, was Leistungsmerkmale und Unterschiede der folgenden zwei Möglichkeiten sind:

%Vor%

oder:

%Vor%

HINWEIS: Die Frage ist nicht, ob es schneller ist, die Funktion zu deklarieren, sondern die Ausführung der Funktion.

    
user148273 20.01.2011, 18:47
quelle

2 Antworten

11

Viel wichtiger als Leistungsunterschiede sind die semantischen Unterschiede zwischen diesen beiden.

  • Eine Funktion, die mit einer Funktionsdeklarationsanweisung (zweites Beispiel) deklariert wurde, hat einen Namen, der in Stack-Traces usw. angezeigt wird.
  • Deklarationen von Funktionsdeklarationen werden an den Anfang ihrer Blöcke gehisst und so interpretiert, als ob sie tatsächlich dort erscheinen würden, bevor irgendwelche anderen Anweisungen in der Funktion ausgeführt werden.

Die Leistungsunterschiede sind wahrscheinlich ziemlich klein, wenn nicht sogar erkennbar, zumindest in modernen Laufzeitumgebungen.

    
Pointy 20.01.2011, 18:48
quelle
10

Hier ist ein JSPerf Link, versuchen Sie es mit mehreren Browsern, da die Ergebnisse variieren. In Chrome 10 wurde die Funktionsaussage besser punkten. Ссылка

    
Amjad Masad 20.01.2011 18:52
quelle

Tags und Links