判断一个数值型变量的方法,在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));         //NaN
console.log(parseFloat(Infinity));    //Infinity
console.log(parseFloat(undefined));   //NaN
console.log(parseFloat(true));        //NaN
console.log(parseFloat(false));       //NaN
console.log(parseFloat({name:'hi'})); //NaN//另外说明 数组使用parseFolat会有不一样的结果:
console.log(parseFloat([1,2]));  //返回  1
 

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

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

JQuery源码-------JQuery中数值型变量的判断isNumeric相关推荐

  1. jQuery源码-jQuery.fn.each jQuery.each

    先上例子,下面代码的作用是:对每个选中的div元素,都给它们添加一个red类 $('div').each(function(index, elem){$(this).addClass('red'); ...

  2. 读jQuery源码 jQuery.data

    var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,rmultiDash= /([A-Z])/g;function internalData( elem, name ...

  3. jquery源码--jquery对象

    (function( window, undefined ) {// 构造 jQuery 对象 22 var jQuery = (function() { 25 var jQuery = functi ...

  4. 深入学习jquery源码之jQuery的选择器引擎Sizzle(一)

    深入学习jquery源码之jQuery的选择器引擎Sizzle Sizzle是一个纯javascript CSS选择器引擎.jquery1.3开始使用sizzle,Sizzle一反传统采取了相反的Ri ...

  5. 深入学习jquery源码之queue()与dequeue()

    深入学习jquery源码之queue()与dequeue() queue(element,[queueName]) 概述 显示或操作在匹配元素上执行的函数队列 参数 element,[queueNam ...

  6. jquery源码中noConflict(防止$和jQuery的命名冲突)的实现原理

    jquery源码中noConflict(防止$和jQuery的命名冲突)的实现原理 最近在看jquery源码分析的视频教学,希望将视频中学到的知识用博客记录下来,更希望对有同样对jquery源码有困惑 ...

  7. Jquery源码中的Javascript基础知识(三)

    这篇主要说一下在源码中jquery对象是怎样设计实现的,下面是相关代码的简化版本: 1 (function( window, undefined ) { 2 // code 定义变量 3 jQuery ...

  8. JQuery源码分析 - 闭包机制在jQuery中的使用及冲突解决

    jQuery中的闭包机制 本系列中我们将基于jquery3.5.1版本对jQuery源码进行分析,分析以源码加注释的方式展示. 本节中将分析jQuery源码中的 14 ~ 40行:自执行函数定义.环境 ...

  9. jQuery源码研究分析学习笔记-静态方法和属性(10)

    jQuery源码中定义了一些重要的静态属性和方法,它们是其他模块实现的基础,整体的源码结构如下 //把window.jQuery和winow.$备份到局部变量_jQuery和_$_jQuery = w ...

最新文章

  1. 服务器清理c盘日志文件,清理WIN2003服务器C盘垃圾的批处理
  2. mos管电路_【鼎阳硬件智库原创︱电源】 MOS管驱动电路的设计
  3. win10仿linux桌面,仿Windows 10 的Linux图标主题及GTK 3.x
  4. Java学习笔记(一)--JDK环境
  5. spring boot+logbak项目打成jar包使用java -jar命令启动后日志出现中文乱码
  6. 【SQL Server】阿里云CentOS安装SQL Server教程 含破解3.5G内存的限制、win端远程连接
  7. makefile运行_NVDIA TX2入门 系列之三:运行Yolov3
  8. string与byte[]之间的转换
  9. python 旋转矩阵_【每日算法Day 93】不用额外空间,你会旋转一个矩阵吗?
  10. c#利用zlib.net对文件进行deflate流压缩(和java程序压缩生成一样)
  11. 50道MySQL经典练习题
  12. php字符串操作整理,《PHP字符串操作》收集整理
  13. 七日杀显示服务器ip,[七日杀怎么看玩家id]七日杀管理员怎么查玩家
  14. 科技解读:com域名价格为什么连年上涨?小微企业怎样应对?
  15. vim 日常使用高级篇幅
  16. 面试软实力:你在工作中遇到过印象深刻的困难是什么,你怎么克服的?
  17. 解决‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘问题
  18. 东南亚——程序员的黑砖窑
  19. 操作系统第七、八章习题
  20. Ubuntu16.04更改新加卷名称

热门文章

  1. shell 下执行mysql 命令
  2. 通过SSIS的“查找”组件进行不同数据源之间数据的合并操作
  3. C++编译器对属性和方法的处理机制
  4. word保存时标题变成黑框(mac版本)
  5. - (NSString *)description
  6. mongoDB的shell数组操作器
  7. POJ-2155 Matrix 二维线段树 | 树状数组
  8. 决胜B端第2版(4):需求分析的十三要素五步法
  9. 产品经理其实是一种能力,而非职业
  10. 中国互联网的抑郁:抄与被抄都很痛