CNode

javascript题目,谁能帮忙分析下isFinite函数,在这里的输出结果?

问答
Ttanshanli发布于10 年前最后回复10 年前5 回复5568 浏览0 收藏

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)

L
lankeren#1·10 年前

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

F
FourLeafClover#2·10 年前
W
William17#3·10 年前

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

T
tanshanli#5·10 年前

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

参与回复
登录后即可参与回复。登录