关于jQuery$.isNumericvs.$.isNaNvs.isNaN_基础知识
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于jQuery$.isNumericvs.$.isNaNvs.isNaN_基础知识,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2160字,纯文字阅读大概需要4分钟。
内容图文
![关于jQuery$.isNumericvs.$.isNaNvs.isNaN_基础知识](/upload/InfoBanner/zyjiaocheng/317/69b9850fb74547e1bb40114ae0182d50.jpg)
首先,jQuery.isNaN()在最新版本中已经被移除了(1.7之后),取而代之的是 jQuery.isNumeric ()。这并不奇怪,因为jQuery.isNaN() 同Javascript内置的isNaN()名字相同,但是语义却不完全相同,在一定意义上会造成歧义。 jQuery.isNumeric ()有着与其相似的功能,同时也解决了歧义问题。
jQuery.isNumeric ()检查传进的参数是否是数字或者可否转换为数字;Javascript 内置的isNaN() 检查传进的参数是否是一个合法的数字,典型的例子是0/0。
具体区别可以看测试:
测试数据:
var values = [
"-10",
,
xFF,
"0xFF",
"8e5",
.1415,
+10,
,
"",
{},
NaN,
null,
true,
Infinity,
undefined,
false
];
使用jQuery verision1.6:
for( var index in values ) {
var v = values[ index ];
$( 'table' ).append( '
+(!isNaN( v )?"true":"false")
+'
+(!$.isNaN( v )?"true":"false")
+'' );
}
输出:
|
!isNaN() |
!$.isNaN() |
-10 |
true |
true |
16 |
true |
true |
255 |
true |
true |
0xFF |
true |
true |
8e5 |
true |
true |
3.1415 |
true |
true |
10 |
true |
true |
100 |
true |
true |
|
true |
false |
[object Object] |
false |
false |
NaN |
false |
false |
null |
true |
false |
true |
true |
false |
Infinity |
true |
false |
undefined |
false |
false |
使用 jQuery version1.7
for( var index in values ) {
var v = values[ index ];
$( 'table' ).append( '
+(!isNaN( v )?"true":"false")
+'
+($.isNumeric( v )?"true":"false")
+'' );
}
输出:
!isNaN() |
$.isNumeric() | |
-10 |
true |
true |
16 |
true |
true |
255 |
true |
true |
0xFF |
true |
true |
8e5 |
true |
true |
3.1415 |
true |
true |
10 |
true |
true |
100 |
true |
true |
|
true |
false |
[object Object] |
false |
false |
NaN |
false |
false |
null |
true |
false |
true |
true |
false |
Infinity |
true |
false |
undefined |
false |
false |
可以看出,$.isNumeric() 跟 !$.isNaN() 结果是一样的, 而 jQuery $.isNumeric() 同Javascript 自带的!isNaN()在对空字符串、null、true/false、Infinity的处理是不同的。因为isNaN()只是检查传入的值是否是NaN类型。
NaN (Not a Number)是一个数字数据类型,表明未定义(undefined )或无法表示(unrepresentable )的值,尤其是浮点数计算值。
因此,isNaN(null) == false 在语义上是正确的,因为null不是NaN(事实上null、ture/false等等会先转为数字0)。但是如果用!isNaN()来判断传入的值可否转换为数字,又不大恰当。而Javascript另一种方式 typeof num == 'number' 则无法检测字符串情况。因此如果不使用 jQuery $.isNumeric(),则最好还是重写一个方法判断,比如用正则来判断或者:
function isNumeric(obj) {
return !isNaN(parseFloat(obj)) && isFinite(obj);
}
内容总结
以上是互联网集市为您收集整理的关于jQuery$.isNumericvs.$.isNaNvs.isNaN_基础知识全部内容,希望文章能够帮你解决关于jQuery$.isNumericvs.$.isNaNvs.isNaN_基础知识所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。