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 это специфическое значение, которое получается самостоятельно, но может быть полезной.

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

Учебный курс по React, часть 1: обзор курса, причины популярности React, ReactDOM и JSX
JavaScript

Учебный курс по React, часть 1: обзор курса, причины популярности React, ReactDOM и JSX

Учебный курс по React, часть 14: практикум по компонентам, основанным на классах, состояние компонентов
JavaScript

Учебный курс по React, часть 14: практикум по компонентам, основанным на классах, состояние компонентов

Отладка Javascript. Основные команды и разбор частых ошибок
JavaScript

Отладка Javascript. Основные команды и разбор частых ошибок

Наследование методов, агрегация и композиция Java: определение и особенности
JavaScript

Наследование методов, агрегация и композиция Java: определение и особенности