MDN中描述isFinite()函数:确定函数的参数是否为有限数,可以将参数转化为数字,
JS高程设计这样描述isFinite()函数:在参数位于最小与最大数值之间时会返回true
综上:isFinite()方法就是在-Infinity和Infinity之间返回true,否则返回false;
Number.MAX_VALUE + 1 === Number.MAX_VALUE + 2 //true
Number.MAX_VALUE + 1 === Number.MAX_VALUE + 999999 //true
Number.MAX_VALUE + 1 === Number.MAX_VALUE + 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 // true
运用科学计数法可以这样写:
Number.MAX_VALUE + 1 === Number.MAX_VALUE + (1e+291)
当在增加一个9时,就会变成false
Number.MAX_VALUE + 1 === Number.MAX_VALUE + 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 // false
科学计数法也可以这样写:
Number.MAX_VALUE + 1 === Number.MAX_VALUE + (1e+292)
但是对于乘法却是比较诡异:
Number.MAX_VALUE * 1.00000001 === Infinity所以:
isFinite(Number.MAX_VALUE * 1.00000001) //false
isFinite(Number.MAX_VALUE+(Number.MAX_VALUE)) //false
isFinite(Infinity); // false
isFinite(NaN); // false
isFinite(-Infinity); // false
isFinite(0); // true
isFinite(2e64); // true
isFinite(910); // true
isFinite(null); // true
isFinite('0'); // true
isFinite('hello') //false
isFinite(true) //true
isFinite(false) //true难点就是判断数据是否为正无穷或者负无穷,规则上面已经提到过!
可以参照如下链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite
https://stackoverflow.com/questions/10837670/adding-to-number-max-value
https://stackoverflow.com/questions/25532240/isfinitenumber-max-value-1-returns-true
本文详细解析JavaScript的isFinite()函数,该函数用于判断参数是否为有限数值。在-Infinity和Infinity之间,isFinite()返回true,否则返回false。了解isFinite()的关键在于如何判断正负无穷。查阅MDN和StackOverflow上的相关资料,可以帮助深入理解该函数的用法和潜在陷阱。
931

被折叠的 条评论
为什么被折叠?



