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

时间:2021-04-16

  判断一个数值型变量的方法,在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,也即不是数值型的。只有数值能通过验证。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章