在我看来,代码
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.