Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.07.2009, 16:46
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Как опознать число?
В продолжение темы «Как опознать RegExp»

Известно, что в JavaScript NaN (Not a Number) принадлежит типу number:

alert(typeof NaN);


Как распознать, что каждая переменная является любым числом, но не NaN и не Infinity, как должна выглядеть функция isNumber?

var a = NaN;
var b = 1;
var c = {};
var d = Infinity;

function isNumber(x) {
   // ...
}

alert([isNumber(a), isNumber(b), isNumber(c), isNumber(d)]);
// Должно быть: false, true, false, false

Последний раз редактировалось Octane, 03.07.2009 в 17:39.
Ответить с цитированием
  #2 (permalink)  
Старый 03.07.2009, 16:50
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А бесконечности?
Ответить с цитированием
  #3 (permalink)  
Старый 03.07.2009, 16:51
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Если не думая, то так: x < 0 || x > 0 || x == 0
причем вариант x < 0 || x > -1 не годится, т. к. null тоже будет числом.
Ответить с цитированием
  #4 (permalink)  
Старый 03.07.2009, 17:00
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от Kolyaj
А бесконечности?
Дополнил вопрос.

Riim, твой вариант не срабатывает с Infinity.

Последний раз редактировалось Octane, 03.07.2009 в 17:08.
Ответить с цитированием
  #5 (permalink)  
Старый 03.07.2009, 17:01
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Я имел в виду их пропускать или нет?
Ответить с цитированием
  #6 (permalink)  
Старый 03.07.2009, 17:04
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от Kolyaj
Я имел в виду их пропускать или нет?
Да
Ответить с цитированием
  #7 (permalink)  
Старый 03.07.2009, 17:04
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Octane,
то две "m" то одна "i", что за фигня?

Сообщение от Octane
твой вариант не срабатывает с Infinity.
Это легко поправить если надо. Я обычно Infinity не учитываю.
Ответить с цитированием
  #8 (permalink)  
Старый 03.07.2009, 17:08
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Т.е. isNumber(Number.NEGATIVE_INFINITY) должен быть true?
Ответить с цитированием
  #9 (permalink)  
Старый 03.07.2009, 17:08
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от Riim
то две "m" то одна "i", что за фигня?
Сорри, поправил.

Сообщение от Kolyaj
Т.е. isNumber(Number.NEGATIVE_INFINITY) должен быть true?
false

блин без бесконечности все красивее выходило

Последний раз редактировалось Octane, 03.07.2009 в 17:17.
Ответить с цитированием
  #10 (permalink)  
Старый 03.07.2009, 17:11
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Понятно, пойду помолчу
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как опознать RegExp. Kolyaj Общие вопросы Javascript 25 04.07.2009 01:41
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24
как найти нужный объект? `p r o x y jQuery 2 05.05.2009 01:12
форма как в ExtJS 2 magistr_bender Общие вопросы Javascript 0 11.09.2008 16:01
Как прибавлять число к числу? Forgott Общие вопросы Javascript 9 06.05.2008 08:47