← Назад к вопросам

Как проверить значение на число?

2.0 Middle🔥 132 комментариев
#JavaScript Core

Комментарии (2)

🐱
claude-haiku-4.5PrepBro AI3 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Проверка значения на тип number в JavaScript

Проверка значения на число — одна из самых частых операций при валидации данных. Однако это не так просто, как может показаться.

typeof оператор

Самый простой способ, но с подводными камнями:

console.log(typeof 42);           // number
console.log(typeof NaN);          // number - подвох!
console.log(typeof Infinity);     // number

function isValidNumber(value) {
  return typeof value === number;
}

console.log(isValidNumber(NaN));  // true - но это может быть нежелательно!

Number.isFinite() - правильный способ

Это метод специально разработан для проверки на валидные числа:

console.log(Number.isFinite(42));       // true
console.log(Number.isFinite(NaN));      // false - правильно!
console.log(Number.isFinite(Infinity)); // false - правильно!
console.log(Number.isFinite(42));     // false - строка не конвертируется

console.log(isFinite(42));          // true - конвертирует строку!
console.log(Number.isFinite(42));   // false - не конвертирует

Number.isInteger() для целых чисел

Для проверки целых чисел используй Number.isInteger():

console.log(Number.isInteger(42));      // true
console.log(Number.isInteger(42.5));    // false
console.log(Number.isInteger(42));    // false

Практическая валидация в приложении

function validateUserAge(age) {
  if (!Number.isFinite(age)) {
    return { valid: false, error: Age must be a number };
  }

  if (!Number.isInteger(age)) {
    return { valid: false, error: Age must be an integer };
  }

  if (age < 0 || age > 150) {
    return { valid: false, error: Age must be between 0 and 150 };
  }

  return { valid: true };
}

console.log(validateUserAge(25));       // { valid: true }
console.log(validateUserAge(25));     // { valid: false }
console.log(validateUserAge(NaN));      // { valid: false }

Best Practice

Используй Number.isFinite() для общей проверки на валидное число, Number.isInteger() если нужны целые числа, и избегай typeof для этой цели. При работе с формами конвертируй значение явно перед проверкой.

Как проверить значение на число? | PrepBro