Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Référence des erreurs JavaScript
  5. InternalError: too much recursion

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

InternalError: too much recursion

Message

Error: Out of stack space (Edge)InternalError: too much recursion (Firefox)RangeError: Maximum call stack size exceeded (Chrome)

Type d'erreur

InternalError.

Quel est le problème ?

Une fonction qui s'appelle elle-même est une fonctionrecursive. Lorsqu'une certaine condition est respectée, la fonction arrête de s'appeler elle-même, c'est ce qu'on appelle le cas initial.

D'une certaine façon, une récursion est semblable à une boucle. Les deux exécutent le même code plusieurs fois, et les deux ont besoin d'une condition d'arrêt afin d'éviter une boucle infinie ou une récursion infinie. Lorsqu'il y a trop de niveaux de récursion ou une récursion infinie, JavaScript lèvera cette erreur.

Exemples

Cette fonction récursive est exécutée 10 fois comme l'indique la condition de sortie :

js
function loop(x) {  if (x >= 10) {    // "x >= 10" is the exit condition    return;  }  // do stuff  loop(x + 1); // the recursive call}loop(0);

Si la condition d'arrêt est beaucoup trop grande, cela ne fonctionnera pas :

js
function loop(x) {  if (x >= 1000000000000) {    return;  }  // do stuff  loop(x + 1);}loop(0);// InternalError: too much recursion

Si la fonction récursive ne possède pas de cas initial, il n'y aura pas de condition de sortie et la fonction continuera de s'appeler indéfiniment.

js
function boucle(x) {  boucle(x + 1);  // il n'y a pas de cas initial}boucle(0);

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp