Что такое NaN? Какого типа это значение? Как можно узнать, равно ли значение переменной NaN?
Этот вопрос проверяет знание работы с числовыми значениями и особенностей NaN (Not-a-Number) в JavaScript.
Короткий ответ
NaN (Not-a-Number) — это специальное значение, представляющее результат нечисловой операции, которая должна возвращать число. NaN является типом number, но не равен ни одному значению, даже самому себе. Чтобы проверить, является ли значение NaN, используется функция isNaN() или Number.isNaN().
Длинный ответ
NaN (Not-a-Number) — это значение в JavaScript, которое появляется, когда операция, предназначенная для работы с числами, возвращает некорректный результат. Например, при делении строки на число или при попытке преобразовать некорректные данные в число. Несмотря на то, что NaN обозначает "не число", его тип в JavaScript — это number.
Особенностью NaN является то, что оно не равно даже самому себе. Это означает, что проверка NaN === NaN всегда возвращает false. Для определения, является ли значение NaN, используются функции isNaN() и Number.isNaN(). isNaN() пытается преобразовать значение в число перед проверкой, в то время как Number.isNaN() строго проверяет, является ли значение именно NaN.
Пример:
console.log(NaN === NaN); // false
console.log(isNaN("hello")); // true, потому что строку нельзя преобразовать в число console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN("hello"));// false, потому что это не NaN, а просто строка