我可以在我的代码看到的Javascript无限分裂
console.log(Infinity/0) // Infinity
但
console.log(Infinity/Infinity) // NaN
我可以假设,原因是在数学,但我不能找到与JS任何解释。
有人能指点我一些文章吗?
我可以在我的代码看到的Javascript无限分裂
console.log(Infinity/0) // Infinity
但
console.log(Infinity/Infinity) // NaN
我可以假设,原因是在数学,但我不能找到与JS任何解释。
有人能指点我一些文章吗?
这里in the spec它说:
除法的结果是由IEEE 754算术
司的无边的的规范由零所导致一个无穷大来决定。标志由上述规则决定。
和
司通过在NaN的无限远结果无限远的。
它在规范中,所以这就是它的作用。它为什么这样做?请阅读IEEE 754或此Wikipedia page on IEEE floating point。
NaN
是一个特殊情况,它不能等于任何东西,甚至不等于它本身。它在操作导致数学上未定义的值时使用。
例如:
console.log(NaN === NaN); // false
console.log(0/0); // NaN
如下的Javascript做算术IEEE 754规范。 This table显示无限运算规则。
也许这是什么东西?阅读:http://www.2ality.com/2012/02/nan-infinity.html – Jer
除了乔的回答之外,它在数学方面也是有意义的。无穷大加减乘以除以常数为无穷大。无穷大被自身分开并且不确定。 – element11