Подтвердить что ты не робот

$.isNumeric против isNaN

Есть ли разница между $. isNumeric и !isNaN()?

Я не вижу, где они когда-либо будут возвращать разные результаты.

4b9b3361

Ответ 1

Из блога jQuery:

Внутри jQuery мы обнаружили несколько ситуаций, когда нам нужно знать, является ли аргумент числовым, или будет успешно преобразован в число, если это какой-то другой тип. Мы решили написать и задокументировать jQuery.isNumeric() с его полезной утилиты. Передайте ему аргумент любого типа и он вернет true или false, если это необходимо.


jQuery.isNaN(): эта недокументированная функция утилиты была удалена. Это было запутанно, потому что оно присвоило имя встроенной функции JavaScript, но не имело той же семантики. Новый jQuery.isNumeric() выполняет аналогичную задачу, но имеет преимущество при документировании и поддержке. Несмотря на то, что jQuery.isNaN() недокументирован, несколько проектов в Github использовали его. Мы связались с ними и попросили использовать jQuery.isNumeric() или какое-то другое решение.

Также см. билет: http://bugs.jquery.com/ticket/10478


jQuery isNumeric() проверяет, является ли значение числом ИЛИ может быть преобразовано в число.

ИЗМЕНИТЬ

Чтобы уточнить, что делает isNan() (и что такое значение NaN):

A NaN, что означает "Not-a-Number", классифицируется как примитивное значение стандартом ECMA-262 и указывает, что указанное значение не является юридическим номером. Функция возвращает true, если аргумент не является числом и false, если аргументом является число.

Классический пример NaN равен нулю, деленному на ноль, 0/0

Code: 
document.write(isNaN("Ima String")) 
document.write(isNaN(0/0)) 
document.write(isNaN("348")) 
document.write(isNaN(348)) 

Output: 
true 
true
false
false

http://www.devguru.com/technologies/ecmascript/quickref/isnan.html

Полу-оффтоп, но связанный этот короткий разговор

Ответ 2

Как говорит PeeHaa, $.isNumeric() проверяет, является ли значение числом или может быть преобразовано в число, isNaN() строго проверяет, является ли это значение NaN.

Здесь представлена ​​удобная сравнительная таблица, в которой используются примеры документации jQuery (сравнение $.isNumeric() - !isNaN для упрощения сравнения): http://jsfiddle.net/eghE9/