Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum können Sie JavaScript-Funktionen aufrufen, bevor sie definiert sind?

Mary-Kate Olsen
Freigeben: 2024-11-01 10:50:30
Original
200 Leute haben es durchsucht

Why Can You Call JavaScript Functions Before They Are Defined?

Funktionsheben in JavaScript verstehen

Warum können wir Funktionen vor ihrer Deklaration in JavaScript aufrufen?

In JavaScript Es tritt ein rätselhaftes Phänomen auf, bei dem Funktionen aufgerufen werden können, noch bevor sie formal definiert sind. Dieses Verhalten wird als Function Hoisting bezeichnet.

Hoisting erklärt

Hoisting trennt die Deklaration einer Funktion von ihrer Ausführung. Funktionsdeklarationen werden während der Kompilierungsphase verarbeitet und ihre Bezeichner werden an den globalen Kontext oder den Bereich gebunden, in dem sie definiert sind. Dies bedeutet, dass Funktionen referenziert und aufgerufen werden können, noch bevor sie explizit im Skript definiert werden.

Beachten Sie den folgenden Code:

<code class="javascript">function fooCheck() {
  alert(internalFoo()); // Invoking internalFoo() before its definition

  return internalFoo(); // Same here

  function internalFoo() { return true; } // Function definition comes later
}

fooCheck();</code>
Nach dem Login kopieren

In diesem Code wird internalFoo() zuvor aufgerufen seine Definition. Überraschenderweise funktioniert es, weil beim Hochziehen die Funktionsdeklaration an die Spitze des Gültigkeitsbereichs gehoben wird, sodass ihre Kennung im gesamten Skript als Referenz verfügbar ist.

Funktionsdeklaration vs. Ausdruck

Dieses Verhalten gilt nur für Funktionsdeklarationen. Funktionsausdrücke, wie etwa anonyme Funktionen, die mit dem Schlüsselwort var definiert werden, weisen nicht das gleiche Hebeverhalten auf. Wenn wir den obigen Code ändern, um einen Funktionsausdruck zu verwenden, bricht das Skript ab:

<code class="javascript">var internalFoo = function () { return true; };</code>
Nach dem Login kopieren

Fazit

Das Heben von Funktionen ist ein grundlegender Aspekt von JavaScript, der sein kann zunächst verwirrend. Mit diesem Verständnis können Sie nun die Komplexität der asynchronen Programmierung bewältigen und einen effizienten Codefluss aufrechterhalten.

Das obige ist der detaillierte Inhalt vonWarum können Sie JavaScript-Funktionen aufrufen, bevor sie definiert sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!