Что такое рекурсия?

Рекурсия - это функция, которая вызывает себя до тех пор, пока не откликнется?

Хорошо, я слышу, но не понимаю, можешь показать мне код?

let countDown = num => {
  console.log(num)
  countDown(num - 1)
}
countDown(10)

Здесь происходит то, что вы пишете функцию ES6 с именем countDown, и мы передаем 10 в качестве параметра аргумента. Он напечатает 10, затем вызовет countDown, но с вычитанием числа на 1, что равно 9.

Вы видите, что должно произойти? Пройдемся еще раз после первого рекурсивного вызова. countDown теперь получает аргумент 9 и распечатает 9, затем снова вызовет countDown, но с нашим номером 9, вычтенным на 1.

Если вы запустите этот код, у вас будут плохие времена, потому что он никогда не остановится, поскольку никогда не было случая прерывания, чтобы сказать нашей рекурсивной функции остановиться. Для этого просто укажите условие if

let countDown = num => {
  if(num === 0) return;  
  console.log(num)
  countDown(num - 1)
}
countDown(10)

Из-за нашего условия if в тот момент, когда нашей рекурсивной функции дается 0 в качестве аргумента, она останавливается.

Позже этот блог будет обновлен с дополнительной информацией, но я надеюсь, что вы смогли понять рекурсию в базовой форме.