
подскажите новичку, изучаю javascript, не могу понять одну вещь в рекурсивной функции. Есть такая программа, которая выводит сумму чисел множества от 1 до 5.
function pow(x)
{
if (x==1)
{
return 1; // Куда возвращается это значение - в alert или в pow(x-1)?
}
else
{
return x + pow(x-1);
}
}
alert(pow(5));
По идее все вроде понятно, если х больше 1, то выполняется else и функция вызывается заново.
Но что происходит, когда х становится равен 1?
В этом случае return должен вернуть 1, но куда? - В alert, который вызвал функцию, или в рекурсию pow(x-1), которая тоже вызвала функцию?
Ведь это условный оператор, и если выполняет тело if, то тело else уже не у дел.
Да, понятно, что там остались незавершенные команды, но опять же, if выполнилось и ему по идее все равно, что там в else, закончилось там что-то или не закончилось.
Или все-таки не все равно и в данном случае работают какие-то другие правила?



