aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/javascript/reference/errors/too_much_recursion
diff options
context:
space:
mode:
authorFlorian Dieminger <me@fiji-flo.de>2021-02-11 18:22:05 +0100
committerGitHub <noreply@github.com>2021-02-11 18:22:05 +0100
commit36dd1801df270db5af29576e3ba0c071933e6cca (patch)
treeef4b939a505e2ebd47d22c475db7316f524bfe0d /files/fr/web/javascript/reference/errors/too_much_recursion
parentf3460d511f9c648ecfe89f81187ff69ab68fc4a3 (diff)
parent7766d67593cf81cc5d15a77b6dcad98d1b98f6aa (diff)
downloadtranslated-content-36dd1801df270db5af29576e3ba0c071933e6cca.tar.gz
translated-content-36dd1801df270db5af29576e3ba0c071933e6cca.tar.bz2
translated-content-36dd1801df270db5af29576e3ba0c071933e6cca.zip
Merge pull request #31 from fiji-flo/unslugging-fr
Unslugging fr
Diffstat (limited to 'files/fr/web/javascript/reference/errors/too_much_recursion')
-rw-r--r--files/fr/web/javascript/reference/errors/too_much_recursion/index.html70
1 files changed, 70 insertions, 0 deletions
diff --git a/files/fr/web/javascript/reference/errors/too_much_recursion/index.html b/files/fr/web/javascript/reference/errors/too_much_recursion/index.html
new file mode 100644
index 0000000000..097eff25b7
--- /dev/null
+++ b/files/fr/web/javascript/reference/errors/too_much_recursion/index.html
@@ -0,0 +1,70 @@
+---
+title: 'InternalError: too much recursion'
+slug: Web/JavaScript/Reference/Errors/Too_much_recursion
+tags:
+ - Erreurs
+ - InternalError
+ - JavaScript
+ - Reference
+translation_of: Web/JavaScript/Reference/Errors/Too_much_recursion
+original_slug: Web/JavaScript/Reference/Erreurs/Too_much_recursion
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="Message">Message</h2>
+
+<pre class="syntaxbox">Error: Out of stack space (Edge)
+InternalError: too much recursion (Firefox)
+RangeError: Maximum call stack size exceeded (Chrome)
+</pre>
+
+<h2 id="Type_d'erreur">Type d'erreur</h2>
+
+<p>{{jsxref("InternalError")}}.</p>
+
+<h2 id="Quel_est_le_problème">Quel est le problème ?</h2>
+
+<p>Une fonction qui s'appelle elle-même est une fonction <em>recursive</em>. 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.</p>
+
+<p>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.</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<p>Cette fonction récursive est exécutée 10 fois comme l'indique la condition de sortie :</p>
+
+<pre class="brush: js">function loop(x) {
+ if (x &gt;= 10) // "x &gt;= 10" is the exit condition
+ return;
+ // do stuff
+ loop(x + 1); // the recursive call
+}
+loop(0);</pre>
+
+<p>Si la condition d'arrêt est beaucoup trop grande, cela ne fonctionnera pas :</p>
+
+<pre class="brush: js example-bad">function loop(x) {
+ if (x &gt;= 1000000000000)
+ return;
+ // do stuff
+ loop(x + 1);
+}
+loop(0);
+
+// InternalError: too much recursion</pre>
+
+<p>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.</p>
+
+<pre class="brush: js example-bad">function boucle(x) {
+ boucle(x + 1);
+ // il n'y a pas de cas initial
+}
+
+boucle(0);
+</pre>
+
+<h2 id="Voir_aussi">Voir aussi</h2>
+
+<ul>
+ <li>{{Glossary("Récursion")}}</li>
+ <li><a href="/fr/docs/Web/JavaScript/Guide/Fonctions#La_récursivité">Les fonctions récursives</a></li>
+</ul>