javascript题目,谁能帮忙分析下isFinite函数,在这里的输出结果?
发布于 8 年前 作者 tanshanli 4292 次浏览 来自 问答

var number1=Number.MAX_VALUE; var number2=number1+100000; var number3=number1+Number.MAX_VALUE; console.log(isFinite(number2)); //结果为true console.log(isFinite(number3)); //结果为false

我自己分析: javascript中,number最大存储为Number.MAX_VALUE; 为什么number2超出了这个数值 isFinite判断还是为true呢? 而number3的时候,却判断为 false了呢?

求javascript高手,帮小白解析下原理,感激不尽。

5 回复

number1 === number2 //true number1+Number.MAX_VALUE //Infinity

Number.MAX_VALUE 1.7976931348623157e+308

1.7976931348623157e+308 + 100000 => 1.7976931348623157e+308 + 0.0000000000000000e+308 => 1.7976931348623157e+308

1.7976931348623157e+308 + 1e+292 => 1.7976931348623157e+308 + 0.0000000000000001e+308 => Infinity

@FourLeafClover 感谢 你的连接

谢谢各位帮助,大概意思就是 加的数值太小,会被 直接丢失,或者四舍五入。 如 3楼给的,加的数值过小,结果却不变。(希望能帮助后面需要理解的朋友)

回到顶部