Вот есть простая функция --->
function my_function(n) {
if (n != 0) {
return my_function(n - 1) + " " + n;
}
}
console.log(my_function(9))
Вывод будет такой: undefined 1 2 3 4 5 6 7 8 9.
Объясните пожалуйста откуда берется undefined в начале и почему исправив код на представленный ниже, он выводит последовательность нормально, без undefined?
function my_function(n) {
if (n == 1)
return '1'
return my_function(n - 1) + ' ' + n;
}
console.log(my_function(9));
function my_function(n) {
if (n != 0){
return my_function(n-1) + " " + n;
}
}
my_function(9);
Функция будет вызываться до тех пор, пока не выполнится my_function(0), инструкция return находится внутри условия, куда естественно не попадаем - функция возвращает undefined.
Второй вариант возвращает значение в любом случае.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости