La Récursivité en JavaScript

Yannick Severo

Yannick Severo

· 3 min de lecture
sponge

C'est quoi une fonction Récursive ?

La récursivité ou recursion, est un concept fondamental en programmation.
Imaginez une poupée russe, où chaque poupée est une version plus petite de la précédente, se nichant parfaitement à l'intérieur.
De la même manière, la récursivité est une fonction qui s'appelle elle-même pour résoudre un problème.
Bien que cela puisse sembler mystérieux au premier abord, cette technique puissante nous permet de décomposer des tâches complexes en de plus petites itérations.
Personnellement je vois ca comme une boucle.

On va y aller pas à pas...

Un Exemple Simple en JavaScript :
Imaginez que vous voulez dire "Hi" un nombre infini de fois, mais en comptant à chaque fois.

Le problème ici est que l'exemple utilisé entraîne un dépassement de pile (stack overflow) car il n'y a pas de condition d'arrêt. La récursivité doit toujours avoir une condition d'arrêt pour éviter de causer des problèmes.

Voici l'erreur 🚨

La fonction récursive s'appelle elle-même à plusieurs reprises sans atteindre un point d'arrêt, ce qui finit par épuiser la pile d'appels du programme.

Etape 2:

Je définit une constante MaximumCallStackSize à 11300. Cette constante représente la limite sur ma machine pour le nombre total d'appels récursifs.

Un exemple qui reprend les précédents avec des commentaires et explications:


Voici comment le processus se déroule :

  1. La variable count est initialement définie à 0.
  2. La fonction show() est définie. Elle a trois rôles clés :
    • Elle vérifie si count a dépassé la limite souhaitée (10). Si c'est le cas, la récursion s'arrête.
    • Elle affiche le message "Hi " suivi de la valeur actuelle de count.
    • Elle incrémente count pour préparer la prochaine itération.
    • Enfin, elle appelle à nouveau la fonction show() pour démarrer une nouvelle itération (appel récursif).
  3. Le processus de récursion est lancé en appelant la fonction show() une première fois.

Lorsque ce code est exécuté, la fonction show() s'appelle elle-même répétitivement jusqu'à ce que count dépasse la limite de 10.
À chaque itération, elle affiche "Hi" suivi du numéro d'itération, ce qui donne l'impression de compter les salutations.
La récursion s'arrête lorsque count devient supérieur à 10, empêchant ainsi un débordement de pile.

Le résultat dans le terminal:

Yannick Severo

Yannick Severo

Ma passion est de résoudre des problèmes et de créer des outils pour aider les gens. C'est ce qui me motive dans mon travail en tant que développeur. J'aime découvrir de nouveaux défis et résoudre des problèmes complexes pour aider les utilisateurs à atteindre leurs objectifs. J'utilise au quotidiens Node js et React.

Copyright © 2024 Face au code. All rights reserved.