JavaScript

JS проверка на NaN: как проверить, является ли число NaN в JavaScript

Lorem ipsum dolor

В JS проверка на NaN затруднена там, что это тип данных, который равняется «ничем». NaN — это «Not a Number» и переводится как «не число». Обычно такое значение возвращается, когда невозможно завершить работу математической функции или когда в значении математической функции расположено «не число». На практике, NaN появляется тогда, когда в JS-скрипте появляется ошибка.

Может возникнуть простой вопрос: для чего в JavaScript NaN, если это не число, не строка и даже не «пустота»? NaN редко когда применяется специально. А его история возникновения тянется еще с первых лет создания JavaScript. Те, кто работает с JavaScript, знают, что это не строгий и многое прощающий язык программирования. NaN в него был введен для того, чтобы в случае возникающих ошибок в скрипте, программа не оканчивала собственное выполнение, а продолжала работать  вернув в качестве значения ошибки NaN.

Проверка на NaN в JS

Проверка на NaN в JS осложнена тем, что это значение не равняется ни какому другому значению, в том числе самому себе. То есть выражение «NaN===NaN» вернет «false». Поэтому проверка на NaN при помощи простого сравнения невозможна. Лучше уж применять функцию «isNaN()» или  метод «Number.isNaN()». Но и тот, и другой способ нужно применять осторожно, потому что каждый из них по-своему специфичен. Например:

  • функция «isNaN()» при проверке вернет «true» в двух случаях: если при проверке значение уже NaN и если оно станет NaN после попытки преобразования его в число;

  • метод «Number.isNaN()» вернет «true» только если значение при проверке уже является NaN.

В общем, с такими способами проверки может сложиться такая ситуация:

isNaN('Привет, Дормидонт!'); //в результате вернет "true"

Number.isNaN('Привет, Дормидонт!'); // в результате вернет "false"

Проверка на NaN в JavaScript: безотказный метод

Проверка на NaN в JS возможна, но для этого нужно выстраивать специфичные конструкции из кода. Например, можно попробовать такую конструкцию:

function sanitise(a) {

  if (isNaN(a)) {

     return NaN;

  }

  return a;

}

 

console.log(sanitise('тут введите какое-то значение'));

Вы можете попробовать этот скрипт в действии и в функции "console.log()" ввести разные значения: строки, числа, NaN, underfilled и др. Таким образом вы сможете убедиться, что такая проверка на NaN в JS работает безотказно.

Заключение

Сегодня мы познакомились с таким типом данных в JavaScript, как NaN. Самое важное, что теперь вы знаете как проводится проверка на NaN в JS. Она нужна не часто, так как NaN это специфическое значение, которое получается самостоятельно, но может быть полезной.

Схожие статьи

JavaScript

Как можно объединить свойства из нескольких объектов JavaScript?

Что значит JavaScript Error: учимся дебажить JavaScript на примерах
JavaScript

Что значит JavaScript Error: учимся дебажить JavaScript на примерах

Java для тестировщиков: как и когда производить тестирование
JavaScript

Java для тестировщиков: как и когда производить тестирование

Интерпретатор JavaScript: объясняем работу движка на пальцах
JavaScript

Интерпретатор JavaScript: объясняем работу движка на пальцах

×