назад до уроку

Повторюйте, поки вхід не буде числом

важливість: 5

Створіть функцію readNumber, яка запросить число, поки відвідувач не введе дійсне числове значення.

Отримане значення потрібно повернути як число.

Відвідувач також може зупинити процес, ввівши порожній рядок або натиснувши “CANCEL”. У цьому випадку функція повинна повернути null.

Запустити демонстрацію

Відкрити пісочницю з тестами.

function readNumber() {
  let num;

  do {
    num = prompt("Введіть число", 0);
  } while ( !isFinite(num) );

  if (num === null || num === '') return null;

  return +num;
}

alert(`Read: ${readNumber()}`);

Рішення є дещо складнішим, аніж здається, тому що нам потрібно обробляти null та порожні рядки.

Таким чином, ми фактично приймаємо вхід, поки він не стане “звичайним числом”. Обидва null (скасування), та порожній рядок відповідають цій умові, оскільки в числовій формі вони є 0.

Після того, як ми зупинилися, нам потрібно обробити null і порожній рядок спеціально (повернути null), тому що їх перетворення у число поверне 0.

Відкрити рішення із тестами в пісочниці.