Прежде чем мы погрузимся в разницу между Иснаном и номером. является
Согласно JavaScript Spec Nan не означает, что вы сталкиваетесь с чем -то подобным в JavaScript, вам придется пересечь, что вы пытаетесь сделать, это либо
- вы пытаетесь выполнить недействительную математическую операцию или
- Вы пытаетесь разыграть что -то, что не является числом (за исключением строки чисел), например, к числу
Parseint (‘Hello’);//строка символов не может быть преобразована в число, поэтому операция вернет NAN
Число (неопределенное);//НАН
‘String’/2;//НАН
Одна вещь, которую вы должны знать, это то, что вы не можете сравнить NAN с NAN или номер. Нэн, следовательно
Parseint («Привет, мир») («Привет, мир»);//ЛОЖЬ
Итак, вы знаете, это не связано с строгим сравнением равенства или сравнением абстрактного равенства
parseint (‘foo’) (‘foo’);//ЛОЖЬ
Но вы можете сделать проверку на вышесказанное с Object.is
Object.is (parseint ('foo'), parseint ('foo'));//true Object.is (NAN, NAN);//истинный
Помимо использования объекта.
- Isnan//на глобальном объекте
- Номер. Isnan
Какой из них вы выберете, определяет, как вы получите Back -Stabled от JavaScript. Так что это приводит нас к разнице между Иснаном и номером.isnan
Isnan делает две вещи
- Он проверяет, является ли значение, которое передается ему NAN или
- Он попытается принудить прошедшее значение в число, если результат будет NAN, то возвратное значение будет истинным
Number.isnan делает только одну вещь
- Он проверяет, действительно ли текущее значение фактически NAN
Например
Isnan ('JavaScript');//true Причина этого заключается в том, что Isnan принуждает «JavaScript» к числу, и, поскольку JavaScript не является числом, возвращаемое значение неверно
Number.isnan ('javascript');//false Причина этого в том, что «javaScript» – это строка, а не значение NAN, поэтому возвратное значение будет ложным
ИСНАН (НАН);//true Нэн не число, следовательно, верно
Number.isnan (NAN);//True Nan не является числом, следовательно, верно
То, что вы должны получить из вышеизложенного, так это то, что number.Isnan не делает никакой формы принуждения, он просто проверяет, является ли значение, передаваемое ему NAN, если это не NAN, то возвратное значение будет ложным.
Открытая для исправлений, это моя первая статья. Спасибо за чтение
Оригинал: “https://dev.to/zombieleet/understand-the-difference-between-isnan-and-number-isnan-57di”