Автор оригинала: 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 ()
Способ отражает все конечные числа и был наиболее подходит для наших требований.