博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JQuery源码-------JQuery中数值型变量的判断isNumeric
阅读量:5879 次
发布时间:2019-06-19

本文共 1090 字,大约阅读时间需要 3 分钟。

 

判断一个数值型变量的方法,在jquery中非常简单,只有一行代码。

isNumeric: function( obj ) {        // parseFloat NaNs numeric-cast false positives (null|true|false|"")        // ...but misinterprets leading-number strings, particularly hex literals ("0x...")        // subtraction forces infinities to NaN        // adding 1 corrects loss of precision from parseFloat (#15100)        return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;    }

1、首先过滤掉数组类型的对象,因为数组Array类型肯定不是Number类型,使用了Array.isArray()方法来判断,过滤掉数组。

  这里不能把object类型的过滤掉,因为通过new Number()实例化的数值型变量,也是数字,不能过滤。  起主要作用的还是下面的一句“obj - parseFloat( obj) ”

jQuery.isArray( obj )

2、看一下,parseFloat对各种类型变量的转换结果,

console.log(parseFloat(NaN));         //NaNconsole.log(parseFloat(Infinity));    //Infinityconsole.log(parseFloat(undefined));   //NaNconsole.log(parseFloat(true));        //NaNconsole.log(parseFloat(false));       //NaNconsole.log(parseFloat({name:'hi'})); //NaN //另外说明 数组使用parseFolat会有不一样的结果:
console.log(parseFloat([1,2]));  //返回  1
 

这些类型的变量执行 obj-parseFlaot(obj)会返回NaN,也即不是数值型的。只有数值能通过验证。

 

转载于:https://www.cnblogs.com/lydialee/p/5010151.html

你可能感兴趣的文章
前端工程化系列[01]-Bower包管理工具的使用
查看>>
使用 maven 自动将源码打包并发布
查看>>
Spark:求出分组内的TopN
查看>>
Python爬取豆瓣《复仇者联盟3》评论并生成乖萌的格鲁特
查看>>
关于跨DB增量(增、改)同步两张表的数据小技巧
查看>>
学员会诊之03:你那惨不忍睹的三层架构
查看>>
vue-04-组件
查看>>
Golang协程与通道整理
查看>>
解决win7远程桌面连接时发生身份验证错误的方法
查看>>
C/C++ 多线程机制
查看>>
js - object.assign 以及浅、深拷贝
查看>>
python mysql Connect Pool mysql连接池 (201
查看>>
Boost在vs2010下的配置
查看>>
一起谈.NET技术,ASP.NET伪静态的实现及伪静态的意义
查看>>
20款绝佳的HTML5应用程序示例
查看>>
string::c_str()、string::c_data()及string与char *的正确转换
查看>>
11G数据的hive初测试
查看>>
如何使用Core Text计算一段文本绘制在屏幕上之后的高度
查看>>
==和equals区别
查看>>
2010技术应用计划
查看>>