$ .isNumeric vs. 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值是多少):

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,但相关的是这个简短的谈话

正如PeeHaa所说, $.isNumeric()检查该值是否为数字或可以转换为数字, isNaN()仅严格检查该值是否为NaN

这是一个方便的比较图表,它使用了jQuery文档的示例(比较$.isNumeric()!isNaN以便于比较): http : //jsfiddle.net/eghE9/