在JavaScript中,为什么零除以零返回NaN,但任何其他除以零返回无穷大?

在我看来,代码

console.log(1 / 0)

应该返回NaN,而是返回Infinity.但是这段代码:

console.log(0 / 0)

确实会回归NaN.有人可以帮我理解这个功能的原因吗?它不仅似乎不一致,而且似乎也是错误的,在x / 0的情况下,x!== 0

解决方法:

因为这是浮点定义的方式(更通常不仅仅是Javascript).参见例如:

> http://en.wikipedia.org/wiki/Floating-point#Infinities
> http://en.wikipedia.org/wiki/NaN#Creation

粗略地说,您可以将1/0视为1 / x的限制,因为x趋于零.并且0/0根本没有合理的解释,因此NaN.

上一篇:Number 数据类型


下一篇:在Java中使用Double.POSITIVE_INFINITY来查找最小值