Понимание NaN в JavaScript

9de80d4f b490 458a ac1b c0638d2130d7 HTML

Всем известно, что значение глобального свойства NaN (Not-a-Number) в JavaScript не равно ничему, даже другому NaN. Но какой тип данных соответствует NaN?

console.log(typeof NaN);

Какой результат мы увидим в консоли при выполнении этого кода?

Значение NaN и его тип данных

Сейчас NaN используется довольно редко, но чаще всего это значение можно увидеть при приведении типов. Например, если попытаться преобразовать текст в число:

console.log(Number("число"));
// NaN

Таким образом, JavaScript указывает на то, что не может определить, какому числу соответствует данное значение или выражение.

Может показаться невероятным и нелогичным, но для JavaScript значение глобального свойства NaN является числом. То есть NaN соответствует типу данных number:

console.log(typeof NaN);
// number

Когда появляется NaN

NaN может появиться в различных ситуациях, например, при математических операциях, которые не могут быть выполнены:

console.log(0 / 0);
// NaN

console.log(Math.sqrt(-1));
// NaN

Проверка на NaN

Поскольку NaN не равен ничему, даже самому себе, для проверки значения на NaN необходимо использовать функцию isNaN():

let value = NaN;

if (isNaN(value)) {
console.log("Значение является NaN");
} else {
console.log("Значение не является NaN");
}
// Вывод: Значение является NaN

Заключение

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

Оцените статью