Я начал изучать рекурсию, подскажите как она работает?
Я понимаю первые три шага, а дальше не могу понять.
1. n = 5
2. n !== 5
3. return myFun(n - 1) + ' ' + n; // Вывод: 4 5. Если изначально выводится 4 5, то как остальные числа оказываются до 4 5?
4. Дальше я не понимаю, переменная n не меняется вроде, как тогда получаются другие числа?
Рекурсия начнёт возвращать результат тогда, когда дойдёт до самого конца и результаты начнёт возвращаться с самого конца. Отсюда и получается, что отправили 5, но выводить началось с 1, потому что return, до этого не работал, он вызывал функцию myFun, а возвращаться результат начал, когда сработал этот if if (n === 1) return 1;, в котором уже не вызывается myFun и соответственно заканчивается рекурсия и return начинает возвращать ответ.