$.isNumeric和!isNaN()
之间有什么区别吗?
我不知道他们会在哪里返回不同的结果。
答案 0 :(得分:26)
来自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值是什么):
NaN(意思是“非数字”)被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
半offtopic,但相关是this short talk
答案 1 :(得分:13)
正如PeeHaa所说,$.isNumeric()
检查该值是否为数字或是否可以转换为数字,isNaN()
仅严格检查该值是否为NaN
。
这是一个方便的比较图表,使用jQuery documentation's示例(比较$.isNumeric()
到!isNaN
以便于比较):http://jsfiddle.net/eghE9/