Основное руководство по NaN в JavaScript с примерами

В этом руководстве вы узнаете о 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.
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript