isFinite方法详解

来源:互联网 发布:windows 7 下载 编辑:程序博客网 时间:2024/06/10 19:14

MDN中描述isFinite()函数:确定函数的参数是否为有限数,可以将参数转化为数字,

JS高程设计这样描述isFinite()函数:在参数位于最小与最大数值之间时会返回true

综上:isFinite()方法就是在-Infinity和Infinity之间返回true,否则返回false;


Number.MAX_VALUE + 1 ===  Number.MAX_VALUE + 2   //trueNumber.MAX_VALUE + 1 ===  Number.MAX_VALUE + 999999   //trueNumber.MAX_VALUE + 1 ===  Number.MAX_VALUE + 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 // true运用科学计数法可以这样写:Number.MAX_VALUE + 1 === Number.MAX_VALUE + (1e+291)当在增加一个9时,就会变成falseNumber.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)  //falseisFinite(Number.MAX_VALUE+(Number.MAX_VALUE))   //false

isFinite(Infinity);  // falseisFinite(NaN);       // falseisFinite(-Infinity); // falseisFinite(0);         // trueisFinite(2e64);      // trueisFinite(910);       // trueisFinite(null);      // trueisFinite('0');       // trueisFinite('hello')    //falseisFinite(true)       //trueisFinite(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

阅读全文
0 0
原创粉丝点击