您的位置:首页 > Web前端 > JQuery

JQuery源码-------JQuery中数值型变量的判断isNumeric

2015-12-01 15:10 615 查看
判断一个数值型变量的方法,在jquery中非常简单,只有一行代码。

isNumeric:function(obj){
//parseFloatNaNsnumeric-castfalsepositives(null|true|false|"")
//...butmisinterpretsleading-numberstrings,particularlyhexliterals("0x...")
//subtractionforcesinfinitiestoNaN
//adding1correctslossofprecisionfromparseFloat(#15100)
return!jQuery.isArray(obj)&&(obj-parseFloat(obj)+1)>=0;
}


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

这里不能把object类型的过滤掉,因为通过newNumber()实例化的数值型变量,也是数字,不能过滤。起主要作用的还是下面的一句“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,也即不是数值型的。只有数值能通过验证。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: