La taille maximale de la pile d'appels a dépassé l'erreur dans JavaScript | Expliqué

La taille maximale de la pile d'appels a dépassé l'erreur dans JavaScript | Expliqué

Les fonctions récursives sont des fonctions qui appellent une méthode dans une autre méthode. Cependant, la récursivité infinie provoque une erreur de taille de pile. L'erreur de taille de pile se produit en raison de l'attente de nombreuses demandes. Ce problème se pose lorsque vous appelez la fonction elle-même. En le considérant, cet article explique que la taille maximale de la pile d'appels dépasse l'erreur en JavaScript. De plus, la solution est également fournie pour résoudre l'erreur.

L'article nous sert comme suit:

  • La taille maximale de la pile d'appels a dépassé l'erreur en javascript
  • Utilisation de la condition IF pour résoudre la taille maximale de la pile d'appels dépassée
  • Utilisation pour Loop pour résoudre la taille maximale de la pile d'appels dépassée.

La taille maximale de la pile d'appels a dépassé l'erreur en javascript

La taille de la pile dépasse l'erreur lorsque l'utilisateur appelle la fonction récursive. Ce type d'erreur se produit en raison de l'invoquer à plusieurs reprises une méthode. Le fun_user () est utilisé comme un appel récursif à l'intérieur de la fonction fun_user () en javascript pour générer une erreur dans la fenêtre de la console.

Code

console.journal ("taille maximale de pile d'appels dépassée");
fun_user ();
fonction fun_user ()

fun_user ();

Dans ce code, le "La taille maximale de la pile d'appels a dépassé l'erreur" est généré en appelant une méthode "Fun_user ()" À l'intérieur de la fonction.

Le code affiche l'erreur comme «RangeError: la taille maximale de la pile d'appels dépassée."

Il existe de nombreuses façons de résoudre cette erreur, comme pour boucle et expressions conditionnelles, qui peut être utilisé pour limiter l'appel de fonction.

Solution 1: Utilisation de la condition IF pour résoudre la taille maximale de la pile d'appels dépassée

Pour résoudre l'erreur, la condition IF est appliquée pour restreindre la taille de la pile en javascript. Par exemple, le code est donné ci-dessous.

Code

var i = 1;
fun_user (i);
fonction fun_user (i)
si je <= 10)

console.log («Bienvenue à JavaScript»);
i = i + 1;
fun_user (i);

La description du code est la suivante:

  • Premièrement, une variable "je" est initialisé avec la valeur 1.
  • Après cela, fun_user () la méthode est utilisée en passant la variable "je".
  • Dans cette fonction, si une condition est appliquée qui restreint l'itération à dix.
  • Enfin, le message "Bienvenue à JavaScript" est affiché en utilisant le "console.enregistrer()" méthode.

Sortir

Solution 2: Utilisation pour la boucle pour résoudre la taille maximale de la pile d'appels dépassée

Pour résoudre l'erreur, une boucle pour une boucle est utilisée pour limiter les itérations en javascript. Par exemple, le code est donné ci-dessous.

Code

Soit Output = 0;
pour (soit i = 5; i> 0; i--)

sortie + = add (1, 1);

fonction add (a, b)
retourner a + b;

console.journal (sortie);

Dans ce code:

  • La variable "sortir" est initialisé avec une valeur de 0.
  • Après cela, une boucle pour une boucle est utilisée pour effectuer cinq itérations. Dans cette boucle, le ajouter() La méthode est appelée en passant la valeur 1.
  • La méthode ajouter() Renvoie l'ajout de deux variables un et b.
  • En fin de compte, leenregistrer() La méthode est utilisée pour afficher la sortie dans la fenêtre de la console.

Sortir

La sortie renvoie "dix" en résolvant l'erreur de la taille maximale de la pile d'appels en javascript.

Conclusion

L'appel infini des fonctions récursives se produit comme le "La taille maximale de la pile d'appels a dépassé l'erreur" en javascript. Cet article explique les raisons de la cause de ce type d'erreur. Par la suite, deux solutions, dont "Pour Loop" et "expressions conditionnelles" sont utilisés pour résoudre l'erreur. Par conséquent, les fonctions d'appel sont limitées en utilisant ces solutions.