У меня есть фрагмент кода JavaScript, который, как ожидается, задает целочисленное значение переменной.
Что-то сломано, поэтому, когда я пытаюсь сделать alert(A);
, он возвращает NaN
. isNaN(A);
возвращает true. Но если я alert(typeof(A));
, то он говорит number
.
Итак, как переменная может быть числом, а не числом в одно и то же время? Возможно, я неправильно понял, что такое NaN?
Изменить: благодаря ответам, я вижу, что я ошибался, потому что:
- Тип
NaN
-number
, -
NaN
означает "не число", это не то же самое, что "не типаnumber
", -
0/0
является хорошим примеромNaN
: он по-прежнему является числом, но JavaScript (и никто другой) не может сказать, что представляет собой действительное значение нуля, деленное на ноль.1/0
, с другой стороны, возвращаетInfinity
, который не являетсяNaN
.