Рубрики
Без рубрики

JavaScript: Проверьте, является ли переменная номер

В этом руководстве мы будем охватывать, как проверить, является ли переменная числа в JavaScript. Мы будем использовать функции isnan (), typeof () и isfinite () для этого.

Автор оригинала: Marcus Sanatan.

Вступление

JavaScript – это динамически напечатанный язык, что означает, что интерпретатор определяет тип переменной во время выполнения. На практике это позволяет использовать ту же переменную для хранения различных типов данных в том же коде. Это также означает, что без документации и последовательности мы не всегда знаем тип переменной в нашем коде, когда мы его используем.

Работа на строке или массиве, когда мы ожидаем, что номер может принести странные результаты в нашем коде. В этой статье мы рассмотрим различные функции, которые могут помочь определить, используются ли переменной, это число.

Строки, содержащие цифры, такие как «10», не должны приниматься. В JavaScript, специальные значения, такие как Нан , Бесконечность и -Infinity Номера тоже – хотя мы будем игнорировать эти ценности.

С этими требованиями наилучшая функция для использования является Исфинит () Функция из встроенного Номер объект.

Однако разработчики обычно используют другие функции для этой цели, особенно Номер .isnan () и Тип () функция.

Давайте создадим несколько переменных для тестирования:

let intVar = 2;
let floatVar = 10.5;
let stringVar = '4';
let nanVar = NaN;
let infinityVar = Infinity;
let nullVar = null;
let undefinedVar = undefined;

Использование функции Number.isfinite ()

Номер .isfinite () Функция проверяет, является ли переменная номер, но также проверяет, если это конечное значение. Поэтому возвращается ложь на номера, которые являются Нан , Бесконечность или -Infinity Отказ

Давайте проверим его на переменных, которые мы определены выше:

> Number.isFinite(intVar);
true
> Number.isFinite(floatVar);
true
> Number.isFinite(stringVar);
false
> Number.isFinite(nanVar);
false
> Number.isFinite(infinityVar);
false
> Number.isFinite(nullVar);
false
> Number.isFinite(undefined);
false

Это именно то, что мы хотели. Специальные некомнатные номера игнорируются, а также любая переменная, которая не является номером.

Если вы хотите проверить, является ли переменная номер, ваша лучшая ставка – использовать Номер .isfinite () функция.

Использование функции number.isnan ()

Стандарт Номер Объект имеет Isnan () метод. Требуется один аргумент и определяет, является ли его значение Нан Отказ Поскольку мы хотим проверить, является ли переменная числа, мы будем использовать не оператор, ! , в наших чеках.

Теперь давайте проверим, если не оператор и Номер .isnan () Функция может фильтровать только номера:

> !Number.isNaN(intVar);
true
> !Number.isNaN(floatVar);
true
> !Number.isNaN(stringVar);
true # Wrong
> !Number.isNaN(nanVar);
false
> !Number.isNaN(infinityVar);
true # Wrong
> !Number.isNaN(nullVar);
true # Wrong
> !Number.isNaN(undefinedVar);
true # Wrong

Этот метод является довольно допустимым, поскольку он принимает значения, которые вообще не числены. Этот метод лучше всего подходит для того, чтобы вы знаете, у вас есть номер, и проверить, является ли это Нан Значение, а не для проверки общего количества.

Использование функции typeof ()

Тип () Функция – это глобальная функция, которая принимает переменную или значение в качестве аргумента и возвращает строковое представление его типа. JavaScript имеет 9 типов всего:

  • неопределенный
  • логический
  • номер
  • нить
  • бить
  • символ
  • объект
  • null ( Тип () показывает как объект)
  • Функция (особый тип объекта)

Чтобы проверить, является ли переменная номер, мы просто нам нужно проверить, возвращается ли значение Тип () это «Номер» Отказ Давайте попробуем это на тестовые переменные:

> typeof(intVar) == 'number';
true
> typeof(floatVar) == 'number';
true
> typeof(stringVar) == 'number';
false
> typeof(nanVar) == 'number';
true # Wrong
> typeof(infinityVar) == 'number';
true # Wrong
> typeof(nullVar) == 'number';
false
> typeof(undefined) == 'number';
false

Тип () Функция выполняет намного лучше, чем Номер .isnan () Отказ Это правильно определяет, что строковая переменная, null и undefined не цифры. Тем не менее, это возвращает true для Нан и Бесконечность Отказ

Пока это технически правильный результат, Нан и Бесконечность Специальные номера значений, для большинства случаев использования мы бы предпочли их игнорировать.

Заключение

В этой статье мы узнали, как проверить, является ли переменная в JavaScript число. Номер .isnan () Функция подходит только в том случае, если мы знаем, что наша переменная является числом и необходимо проверить, если это конкретно Нан или иным образом.

Тип () Функция подходит, если ваш код может работать с Нан , Бесконечность или -Infinity а также другие числа.

Номер .isfinite () Способ отражает все конечные числа и был наиболее подходит для наших требований.