isFinite方法详解

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)