Помогите найти ошибку в коде JS

Я всего несколько дней изучаю JS. Есть задачка. Напишите функцию, которая запрашивает у пользователя число от 18 до 50. Если пользователь ввел НЕ число, то сделайте ему замечание, если число, то запишите это число в перемнную и используйте в другой функции, которая будет умножать это число на само себя, и выведите результат пользователю.

Проблема в том что если сначала ввести букву и при повторной попытке цифру то складывается буква с цифрой и соответственно ответ NaN. Помогите найти проблему.

function inputSomeValue() {
  var userAnswer = prompt("Введите число от 18 до 50:", "Ваше значение");
  if (isNaN(userAnswer) || userAnswer < 18 || userAnswer > 50) {
    alert("Не правильно :( Попробуйте снова.");
    inputSomeValue();
  } else {
    alert("Правильно! Вы ввели " + userAnswer + " Теперь умножим его на " + userAnswer);
  }

  return userAnswer;
}

var ansver = inputSomeValue();

function sum(x) {

  return x * x;
}
var ansver2 = sum(ansver);
alert('Ответ ' + ansver2);


Ответы (1 шт):

Автор решения: Igor
function inputSomeValue() {
  var userAnswer = prompt("Введите число от 18 до 50:", "Ваше значение");
  if (isNaN(userAnswer) || userAnswer < 18 || userAnswer > 50) {
    alert("Не правильно :( Попробуйте снова.");
    return inputSomeValue(); // !!!
  } else {
    alert("Правильно! Вы ввели " + userAnswer + " Теперь умножим его на " + userAnswer);
  }

  return userAnswer;
}
→ Ссылка