Есть ли разница между $. isNumeric и !isNaN()
?
Я не вижу, где они когда-либо будут возвращать разные результаты.
Есть ли разница между $. isNumeric и !isNaN()
?
Я не вижу, где они когда-либо будут возвращать разные результаты.
Из блога 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
Полу-оффтоп, но связанный этот короткий разговор
Как говорит PeeHaa, $.isNumeric()
проверяет, является ли значение числом или может быть преобразовано в число, isNaN()
строго проверяет, является ли это значение NaN
.
Здесь представлена удобная сравнительная таблица, в которой используются примеры документации jQuery (сравнение $.isNumeric()
- !isNaN
для упрощения сравнения): http://jsfiddle.net/eghE9/