Далее на странице...
NaN означает «не число» - от сокращ. «Not a Number».
Хотя NaN означает «не число», оно относится к значениям числового типа number. Вот такой ПАРАДОКС.
Итак, NaN используется для представления числовых значений, которые никак не выражаются в Javascript.
Например, выражение 0/0 (деление нуля на самого себя) имеет неопределенный результат даже в математике, поэтому и для Javascript это будет NaN (не число).
Следует знать, что NaN даже не равно самому себе! NaN != NaN
Как используется NaN в JavaScript?
Как используется не число NaN в JavaScript?
Если NaN - это не число, то логично предположить, что оно может использоваться для проверки предполагаемых числовых значений на NaN.
var myNum = 0/0;
console.log(myNum); /* Выводим значение переменной - это NaN */
if (myNum == NaN) {
myNum = 0;
console.log(myNum); /* Вывод значения переменной - ничего не дает */
}
Использование не числа NaN в JavaScript
- - - - - - - - - - - консоль браузера - - - - - - - - - - -
NaN
Комментарии к примеру.
-
Переменная myNum равна NaN - это очевидно (деление на ноль - это NaN).
-
Далее пробуем сравнить переменную myNum с NaN и если это так, то присваиваем ей значение 0. Но это действие не приводит к результату, так как его просто нет. Потому что не имеет смысла сравнивать NaN и NaN. Это сравнение ничего не дает.
Так как проверять принадлежность к числам в Javascript? Читайте об этом далее...
Функция isNaN - Не число - это истина
В Javascript для проверки результатов на предмет их принадлежности к числам используется функция isNaN.
Она позволяет проверить - что находится в переменной: число или нет. Функция isNaN возвращает true, если в переменной не число и false, если в ней содержится число.
О функции isNaN уже шла речь в этой заметке.
Теперь можно вернуться к предыдущему примеру и легко осуществить требуемую проверку переменной.
var myNum = 0/0;
console.log(myNum); /* Выводим значение переменной - это NaN */
if (isNaN(myNum)) { /* Если myNum не число, то ..... */
myNum = 0;
console.log(myNum);
}
Комментарии к примеру.
Итак, переменная myNum не является числом.
Следовательно, результат функции isNaN(myNum) - это истина true. Поэтому на этот раз переменной myNum присваивается значение 0.
Здесь Вы познакомились с тем, что такое NaN в Javascript, с парадоксальными особенностями этого «не числа». А также узнали о том, что функция isNaN служит для проверки результатов исполнения кода на их принадлежность к числам.