2016-03-23 48 views
0

我可以在我的代码看到的Javascript无限分裂

console.log(Infinity/0) // Infinity 

console.log(Infinity/Infinity) // NaN 

我可以假设,原因是在数学,但我不能找到与JS任何解释。

有人能指点我一些文章吗?

+1

也许这是什么东西?阅读:http://www.2ality.com/2012/02/nan-infinity.html – Jer

+1

除了乔的回答之外,它在数学方面也是有意义的。无穷大加减乘以除以常数为无穷大。无穷大被自身分开并且不确定。 – element11

回答

4

这里in the spec它说:

除法的结果是由IEEE 754算术

司的无边的的规范由零所导致一个无穷大来决定。标志由上述规则决定。

司通过在NaN的无限远结果无限远的。

它在规范中,所以这就是它的作用。它为什么这样做?请阅读IEEE 754或此Wikipedia page on IEEE floating point

0

NaN是一个特殊情况,它不能等于任何东西,甚至不等于它本身。它在操作导致数学上未定义的值时使用。

例如:

console.log(NaN === NaN); // false 
console.log(0/0);  // NaN