Maximale Call -Stapelgröße hat den Fehler in JavaScript | überschritten Erklärt

Maximale Call -Stapelgröße hat den Fehler in JavaScript | überschritten Erklärt

Rekursive Funktionen sind Funktionen, die eine Methode innerhalb einer anderen Methode aufrufen. Unendliche Rekursion verursacht jedoch einen Stapelgrößenfehler. Der Stapelgrößenfehler tritt aufgrund der anhängigen Anfragen auf. Dieses Problem ergibt sich beim Aufrufen der Funktion selbst. Durch die Betrachtung wird in diesem Artikel erläutert, dass die maximale Call -Stapelgröße den Fehler in JavaScript überschreitet. Darüber hinaus wird auch die Lösung bereitgestellt, um den Fehler zu beheben.

Der Artikel dient uns wie folgt:

  • Maximale Call -Stapelgröße hat den Fehler in JavaScript überschritten
  • Verwenden Sie bei einer Bedingung, um die maximale Call -Stapelgröße zu beheben, die Fehler überschritten hat
  • Verwenden Sie für die Schleife, um die maximale Call -Stapelgröße zu lösen, die Fehler überschritten haben.

Maximale Call -Stapelgröße hat den Fehler in JavaScript überschritten

Die Stapelgröße hat einen Fehler überschritten, wenn der Benutzer die rekursive Funktion aufruft. Diese Art von Fehler tritt auf, da wiederholt auf eine Methode aufgerufen wird. Der fun_user () wird als rekursiver Anruf innerhalb der Funktion verwendet fun_user () In JavaScript, um einen Fehler im Konsolenfenster zu generieren.

Code

Konsole.log ("Maximale Anrufstapelgröße überschritten");
fun_user ();
Funktion fun_user ()

fun_user ();

In diesem Code die "Maximale Call -Stapelgröße hat Fehler überschritten" wird durch Aufrufen einer Methode generiert "Fun_User ()" Innerhalb der Funktion.

Der Code zeigt den Fehler als an „RangeError: Maximale Call -Stapelgröße überschritten.”

Es gibt viele Möglichkeiten, diesen Fehler zu beheben, wie z Für Schleife Und Bedingte Aussagen, Dies kann verwendet werden, um den Funktionsaufruf zu begrenzen.

Lösung 1: Verwenden Sie bei Bedingung zur Behebung der maximalen Call -Stapelgröße einen Fehler

Um den Fehler zu beheben, wird die IF -Bedingung angewendet, um die Stapelgröße in JavaScript einzuschränken. Zum Beispiel ist der Code unten angegeben.

Code

var i = 1;
fun_user (i);
Funktion Fun_user (i)
wenn ich <= 10)

Konsole.log ('Willkommen bei JavaScript');
i = i+1;
fun_user (i);

Die Beschreibung des Codes lautet wie folgt:

  • Erstens eine Variable "ich" wird mit dem Wert 1 initialisiert.
  • Danach, fun_user () Die Methode wird verwendet, indem die Variable bestanden wird "ich".
  • Wenn in dieser Funktion eine Bedingung angewendet wird, schränkt dies die Iteration auf 10.
  • Schließlich die Nachricht "Willkommen bei JavaScript" wird mit dem angezeigt "Konsole.Protokoll()" Methode.

Ausgang

Lösung 2: Verwenden Sie für die Schleife, um die maximale Call -Stapelgröße zu lösen, die Fehler überschritten hat

Um den Fehler aufzulösen, wird eine für die Schleife verwendet, um die Iterationen in JavaScript zu begrenzen. Zum Beispiel ist der Code unten angegeben.

Code

lass output = 0;
für (sei i = 5; i> 0; i--)

Ausgabe += add (1, 1);

Funktion add (a, b)
Return a + b;

Konsole.Protokoll (Ausgabe);

In diesem Code:

  • Die Variable "Ausgang" wird mit einem Wert von 0 initialisiert.
  • Danach wird A für Schleife verwendet, um fünf Iterationen durchzuführen. In dieser Schleife die hinzufügen() Die Methode wird aufgerufen, indem der Wert 1 bestanden wird.
  • Die Methode hinzufügen() Gibt die Zugabe von zwei Variablen zurück A Und B.
  • Am Ende dieProtokoll() Die Methode wird verwendet, um die Ausgabe im Konsolenfenster anzuzeigen.

Ausgang

Die Ausgabe kehrt zurück "10" Durch die Auflösung des Fehlers der maximalen Anrufstapelgröße in JavaScript.

Abschluss

Die unendliche Aufruf rekursiver Funktionen tritt als die auf "Maximale Call -Stapelgröße hat Fehler überschritten" In JavaScript. Dieser Artikel erläutert die Gründe, diese Art von Fehler zu verursachen. Danach zwei Lösungen, einschließlich "Für Schleife" Und "Bedingte Aussagen" werden verwendet, um den Fehler zu beheben. Daher werden die Anruffunktionen durch die Verwendung dieser Lösungen eingeschränkt.