JQuery源码-------JQuery中数值型变量的判断isNumeric
判断一个数值型变量的方法,在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相关推荐
- jQuery源码-jQuery.fn.each jQuery.each
先上例子,下面代码的作用是:对每个选中的div元素,都给它们添加一个red类 $('div').each(function(index, elem){$(this).addClass('red'); ...
- 读jQuery源码 jQuery.data
var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,rmultiDash= /([A-Z])/g;function internalData( elem, name ...
- jquery源码--jquery对象
(function( window, undefined ) {// 构造 jQuery 对象 22 var jQuery = (function() { 25 var jQuery = functi ...
- 深入学习jquery源码之jQuery的选择器引擎Sizzle(一)
深入学习jquery源码之jQuery的选择器引擎Sizzle Sizzle是一个纯javascript CSS选择器引擎.jquery1.3开始使用sizzle,Sizzle一反传统采取了相反的Ri ...
- 深入学习jquery源码之queue()与dequeue()
深入学习jquery源码之queue()与dequeue() queue(element,[queueName]) 概述 显示或操作在匹配元素上执行的函数队列 参数 element,[queueNam ...
- jquery源码中noConflict(防止$和jQuery的命名冲突)的实现原理
jquery源码中noConflict(防止$和jQuery的命名冲突)的实现原理 最近在看jquery源码分析的视频教学,希望将视频中学到的知识用博客记录下来,更希望对有同样对jquery源码有困惑 ...
- Jquery源码中的Javascript基础知识(三)
这篇主要说一下在源码中jquery对象是怎样设计实现的,下面是相关代码的简化版本: 1 (function( window, undefined ) { 2 // code 定义变量 3 jQuery ...
- JQuery源码分析 - 闭包机制在jQuery中的使用及冲突解决
jQuery中的闭包机制 本系列中我们将基于jquery3.5.1版本对jQuery源码进行分析,分析以源码加注释的方式展示. 本节中将分析jQuery源码中的 14 ~ 40行:自执行函数定义.环境 ...
- jQuery源码研究分析学习笔记-静态方法和属性(10)
jQuery源码中定义了一些重要的静态属性和方法,它们是其他模块实现的基础,整体的源码结构如下 //把window.jQuery和winow.$备份到局部变量_jQuery和_$_jQuery = w ...
最新文章
- 服务器清理c盘日志文件,清理WIN2003服务器C盘垃圾的批处理
- mos管电路_【鼎阳硬件智库原创︱电源】 MOS管驱动电路的设计
- win10仿linux桌面,仿Windows 10 的Linux图标主题及GTK 3.x
- Java学习笔记(一)--JDK环境
- spring boot+logbak项目打成jar包使用java -jar命令启动后日志出现中文乱码
- 【SQL Server】阿里云CentOS安装SQL Server教程 含破解3.5G内存的限制、win端远程连接
- makefile运行_NVDIA TX2入门 系列之三:运行Yolov3
- string与byte[]之间的转换
- python 旋转矩阵_【每日算法Day 93】不用额外空间,你会旋转一个矩阵吗?
- c#利用zlib.net对文件进行deflate流压缩(和java程序压缩生成一样)
- 50道MySQL经典练习题
- php字符串操作整理,《PHP字符串操作》收集整理
- 七日杀显示服务器ip,[七日杀怎么看玩家id]七日杀管理员怎么查玩家
- 科技解读:com域名价格为什么连年上涨?小微企业怎样应对?
- vim 日常使用高级篇幅
- 面试软实力:你在工作中遇到过印象深刻的困难是什么,你怎么克服的?
- 解决‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘问题
- 东南亚——程序员的黑砖窑
- 操作系统第七、八章习题
- Ubuntu16.04更改新加卷名称