У вас бесконечные проблемы рекурсии, потому что вы извлекаете значение из ввода в рекурсивной функции, и поэтому переменная getInputValue
каждый раз получает значение fre sh. Это неправильная реализация, которую вы сделали. Попробуйте приведенный ниже пример.
HTML
<input type="text" name="factorial_input" placeholder="Enter a number">
<div class="button" onclick="calculateFactorial()">Let's see the factorial</div>
Сценарий
function calculateFactorial(getInputValue) {
let getInputValue = parseInt(document.querySelector("input").value);
console.log(fact(getInputValue));
}
function fact(n){
if (n === undefined) {
return 0;
} else if (n === 0) {
return 1;
} else {
return n *= fact(n - 1);
}
}
Рекурсивной функции необходимо удовлетворительное условие для возврата из recusrion для возврата стек вызовов. В противном случае, это будет go на бесконечный вызов.