Javascript无限分裂

时间:2016-03-23 12:47:19

标签: javascript infinity

我可以在我的代码中看到

console.log(Infinity/0) // Infinity

但是

console.log(Infinity/Infinity) // NaN

我可以假设原因在于数学,但我找不到与JS相关的任何解释。

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

3 个答案:

答案 0 :(得分:4)

这里in the spec说:

  

除法的结果由IEEE 754算法的规范确定

     

将无穷大除以零会导致无穷大。该标志由上述规则确定。

  

用无穷大划分无穷大会导致NaN。

它符合规范,以及它的作用。它为什么这样做?阅读IEEE 754或此Wikipedia page on IEEE floating point

答案 1 :(得分:0)

NaN是一种特殊情况,它不等于任何不均匀的东西。当操作导致数学上未定义的值时,会使用它。

例如:

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

答案 2 :(得分:0)

Javascript遵循IEEE 754规范进行算术运算。 This table显示了Infinity算术规则。