В этом руководстве вы узнаете о JavaScript NaN, как проверить, является ли значение NaN, и как эффективно обрабатывать на примерах.
JavaScript имеет числовой тип, который позволяет вам представлять числа, включая целые числа и числа с плавающей запятой. И число в JavaScript имеет специальное значение, называемое NaN, что означает Not-a–Number.
Значение является свойством глобального объекта. Глобальный объект — это объект window в веб-браузерах:
window.NaN
И глобальный объект в Node.js:
global.NaN
NaN имеет number тип, как показано в следующем коде:
console.log(typeof NaN); // number
Проверка, является ли значение NaN
JavaScript предоставляет вам глобальную функцию isNaN(), которая возвращает true, если ее аргумент равен NaN :
isNaN(valueToCheck)
Например:
const result = 100 + 0 / 0; console.log(isNaN(result)); // true
Зачем использовать NaN
JavaScript использует NaN в результате неудачной операции над числами, включая:
- Разбор номеров
- Использование
undefinedв качестве операнда - Использование
NaNв качестве операнда - Использование неопределенных форм
- Передача недопустимых аргументов математической функции
Операции, которые возвращают NaN
1) Разбор номера
В JavaScript вы можете преобразовать числовую строку в число. Например:
const input = '100'; const num = parseInt(input); console.log(num); // 100
Если JavaScript не может преобразовать строку в число, он возвращает NaN. В этом случае NaN указывает на сбой синтаксического анализа. Например:
const input = 'X100'; const num = parseInt(input); console.log(num); // NaN
Хорошей практикой является проверка результата синтаксического анализа с помощью функции isNaN :
const input = 'X100';
const num = parseInt(input);
// set num to 0 if parsing failed
if(isNaN(num)) {
num = 0;
}
console.log(num); // 0В этом примере синтаксический анализ завершился неудачно, поэтому он вернул NaN. Условие isNaN(num) истинно, так что число присваивается 0.
2) Использовать undefined в качестве операнда
Выражение, использующее undefined в качестве операнда, возвращает NaN. Например:
console.log(undefined * 2); // NaN
На практике вы будете иметь дело с undefined довольно часто. Например, когда вы получаете доступ к несуществующему свойству элемента HTML и используете его в расчете.
Рекомендуется избегать использования undefined значения в расчетах.
3) Использование NaN в качестве операнда
Когда выражение содержит NaN, оно всегда возвращает NaN. Например:
const result = 10 + 1 / NaN; console.log(result); // NaN
4) Использование неопределенных форм
Когда арифметическая операция находится в неопределенной форме, она возвращает NaN. Например:
const result = 10 + 0 / 0; console.log(result); // NaN
5) Использование неверных аргументов математических функций
Когда математическая функция получает недопустимый аргумент, она возвращает NaN. Например:
const result = Math.sqrt(-1); console.log(result); // NaN
В этом примере Math.sqrt() возвращает квадратный корень числа. Поскольку он принимает только неотрицательные числа, передача -1 приводит к NaN.
Заключение
- NaN в JavaScript означает Not-a-Number. Это специальное значение свойства глобального объекта.
- Свойство указывает на неудачную операцию над числами.
- Используйте
isNaN(), чтобы проверить, является ли значениеNaN.
