Метод isNaN пытается преобразовать переданный параметр в число. Если параметр не может быть преобразован, возвращает true, иначе возвращает false.
Эта функция полезна, так как значение NaN не может быть проверено операторами эквивалентности.
Значение x == NaN и x === NaN всегда false для любого x, даже если x=NaN.
1 == NaN // false
NaN == NaN // false
isNaN(NaN) // true
isNaN("12") // false
а NaN это строковое значение или какое? как на него проверять без функции isNaN?
можно так обратиться if (val == "NaN") или только if (val == NaN) ?
NaN - это специальное значение. Без функции isNaN проверить нельзя, == не сработает.
самая банальная проверка на NaN это: NaN == NaN всегда будет false
т.е. переменная не равна сама себе
var a = NaN;
isNaN(a) // true
a!=a // true
лучше не пользоваться isNaN, поскольку передаваемое в функцию значение, не всегда будет преобразовываться в число:
var a = 'test';
isNaN('test') // true !!!!
a!=a // false
Спасибо! Очень полезный сайт!
Очень нужный сайт! Никогда не догадался бы, что объязательно нужно делать так!
Отправить комментарий
Приветствуются комментарии:- Полезные.
- Дополняющие прочитанное.
- Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.Для остальных вопросов и обсуждений есть форум.