【发布时间】:2018-09-23 20:37:30
【问题描述】:
为什么算术运算符在 JavaScript 中对无穷大值的工作方式不同?
console.log(1.7976931348623157E+10308 + 1.7976931348623157E+10308)//Infinity
console.log(1.7976931348623157E+10308 * 1.7976931348623157E+10308)//Infinity
console.log(1.7976931348623157E+10308 - 1.7976931348623157E+10308)/NaN
console.log(1.7976931348623157E+10308 / 1.7976931348623157E+10308)/NaN
实际上1.7976931348623157E+10308 是一个Infinity 值。您可以在下面查看算术运算符如何返回 Infinity 值的结果。
console.log(Infinity + Infinity)//Infinity
console.log(Infinity * Infinity)//Infinity
console.log(Infinity - Infinity)/NaN
console.log(Infinity / Infinity)/NaN
所以我的问题是..
为什么
+和*运算符在Infinity之间进行算术运算时返回Infinity值?为什么
-和/运算符在Infinity之间进行算术运算时返回Infinity值?
【问题讨论】:
-
因为它在数学上有意义?
标签: javascript typescript types ecmascript-6 operators