Javascript.RU

isNaN

Синтаксис

isNaN(testValue)

Аргументы

testValue
значение на проверку

Описание, примеры

Метод isNaN пытается преобразовать переданный параметр в число. Если параметр не может быть преобразован, возвращает true, иначе возвращает false.

Эта функция полезна, так как значение NaN не может быть проверено операторами эквивалентности.

Значение x == NaN и x === NaN всегда false для любого x, даже если x=NaN.

1 == NaN // false
NaN == NaN // false
isNaN(NaN) // true
isNaN("12") // false

Автор: Trivium (не зарегистрирован), дата: 7 октября, 2009 - 16:15
#permalink

а NaN это строковое значение или какое? как на него проверять без функции isNaN?
можно так обратиться if (val == "NaN") или только if (val == NaN) ?


Автор: Илья Кантор, дата: 7 октября, 2009 - 17:10
#permalink

NaN - это специальное значение. Без функции isNaN проверить нельзя, == не сработает.


Автор: zloydadka (не зарегистрирован), дата: 15 февраля, 2011 - 16:05
#permalink

самая банальная проверка на NaN это: NaN == NaN всегда будет false
т.е. переменная не равна сама себе
var a = NaN;
isNaN(a) // true
a!=a // true

лучше не пользоваться isNaN, поскольку передаваемое в функцию значение, не всегда будет преобразовываться в число:
var a = 'test';
isNaN('test') // true !!!!
a!=a // false


Автор: Гость (не зарегистрирован), дата: 26 января, 2017 - 10:30
#permalink

Идиот. NaN - не число


Автор: Гость (не зарегистрирован), дата: 6 февраля, 2017 - 08:13
#permalink

NaN -- число (number) -- читай доку.
typeof NaN -> "number"


Автор: Гость (не зарегистрирован), дата: 17 мая, 2017 - 22:06
#permalink

Зачем тогда вообще эта функция нужна, если она строки считает NaN'ами?


Автор: Гость (не зарегистрирован), дата: 25 марта, 2010 - 06:57
#permalink

Спасибо! Очень полезный сайт!


Автор: Gosha-bor (не зарегистрирован), дата: 26 ноября, 2010 - 22:41
#permalink

Очень нужный сайт! Никогда не догадался бы, что объязательно нужно делать так!


Автор: Гость (не зарегистрирован), дата: 13 июля, 2012 - 12:47
#permalink

isNaN('') будет false


Автор: az (не зарегистрирован), дата: 14 января, 2013 - 17:09
#permalink

isNaN(null) также false


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2013 - 14:51
#permalink

кэп?


Автор: Гость (не зарегистрирован), дата: 29 ноября, 2013 - 18:13
#permalink

Проверить переменную x на NaN можно так: x !== x. Это выражение вернет true тогда и только тогда когда x есть NaN


Автор: web.anvyd, дата: 22 октября, 2015 - 01:55
#permalink

единственный верный вариант, своего рода костыль


Автор: StrangerWS (не зарегистрирован), дата: 17 мая, 2017 - 07:48
#permalink

isMyNaN(undefined)
false
isMyNaN('e')
false
isMyNaN('1')
false
isMyNaN(1)
false
isMyNaN(null)
false
isMyNaN(true)
false

неверно, оно вернёт false если значение === самому себе, то есть любой символ, любая строка и любое число. Даже true вернёт false


Автор: StrangerWS (не зарегистрирован), дата: 17 мая, 2017 - 08:05
#permalink

Такая реализация более корректна - по крайней мере, отрабатывает в точности как NaN

function isMyNaN(value) {
if (value !== null) {
return parseFloat(value) !== parseFloat(value);
}
else return false;
}

isNaN(undefined)
true
isMyNaN(undefined)
true

isNaN('1')
false
isMyNaN('1')
false

isNaN(null)
false
isMyNaN(null)
false

isNaN('e')
true
isMyNaN('e')
true


Автор: Гость (не зарегистрирован), дата: 6 февраля, 2015 - 10:33
#permalink

isNaN(undefined); //true


Автор: Гость (не зарегистрирован), дата: 17 февраля, 2015 - 13:45
#permalink

действительно
isNaN(undefined); //true

И Как сравнить теперь undefined и Nan?


Автор: web.anvyd, дата: 22 октября, 2015 - 01:51
#permalink

isNaN("Hi") // true
Если проверить любую строку, вернется true


Автор: RadChand, дата: 27 ноября, 2015 - 14:48
#permalink

Не любую
isNaN("12") // false
isNaN("0x12") // false
isNaN("x12") // true
isNaN("12x") // true


Автор: Гость (не зарегистрирован), дата: 1 апреля, 2016 - 16:56
#permalink

Если вопрос в корректности использования isNaN(), то...

function strIsNumber( s )
{
return s != null && s.trim() != '' && !isNaN( Number( s ) );
}

Возвращает true, если значение s может быть преобразовано в число, иначе - false (кэп)

Тоже костыль, конечно...
Но, по крайней мере для таких значений s, как undefined, null и 'test' (см. выше) отработало корректно.


Автор: feuer81 (не зарегистрирован), дата: 31 мая, 2016 - 16:00
#permalink

Как задать в функции отсутствие аргументов?


Автор: Гость (не зарегистрирован), дата: 28 июня, 2016 - 13:08
#permalink

Просто так. function foo()


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
1 + 11 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum