Problem with the diversion of prompt

Starting
power(number, exponent)
with parametersvar number = defineNumber();
when the prompt value is not inserted, after its reintroduction, zero shall be removed. What does that have to do with it?function power(number, exponent) { var number = defineNumber();
if (number === null) {
return false;
}var exponent = defineExponent();
if (exponent === null) {
return false;
}var res = calc();
function defineNumber(val) {
var x = prompt("ВВЕДИТЕ ЛЮБОЕ ЧИСЛО", val  '');
if (x === '') {
alert('Вы не указали число');
defineNumber(val);
}
return x;
}function defineExponent(val) {
var n = prompt("ВВЕДИТЕ ЖЕЛАЕМЫЙ ПОКАЗАТЕЛЬ СТЕПЕНИ", val  '');
if (n === '') {
alert('Вы не указали степень');
defineExponent(val);
}
return n;
}function calc() {
var result;
if (+exponent === 0) {
result = 1; // если показатель степени = 0
}if (+exponent > 0) { result = +number; // если показатель степени положительный for (var i = 1; i < +exponent; i++) { result *= +number }; } if (+exponent < 0) { result = 1 / +number; // если показатель степени отрицательный for (var i = +exponent; i < 1; i++) { result *= (1 / [+number]) }; } return result;
}
console.log(res);
return res;}

The problem is that the value requested is not returned again:
if (x === '') { alert('Вы не указали число'); defineNumber(val); }
And the first line, empty, is returned, which is exactly 0.
It is sufficient for the solution to return this value:
if (x === '') { alert('Вы не указали число'); return defineNumber(val); }