首页 > 解决方案 > 为什么 Math.log(0) 在 JavaScript 中返回 -Infinity?

问题描述

当我的Math.log价值变为零时,它正在赋予-Infinity价值。为什么它给出负无穷大值?为什么只给 -Infinity 而不是给 +Infinity。为什么只有 0 值给出这个结果。

console.log(Math.log(0))

标签: javascriptmathinfinity

解决方案


从根本上说,因为它是这样指定的

20.2.2.20Math.log ( x )

返回 x 的自然对数的与实现相关的近似值。

  • 如果 x 为 NaN,则结果为 NaN。
  • 如果 x 小于 0,则结​​果为 NaN。
  • 如果 x 为 +0 或 -0,则结果为 -∞。
  • 如果 x 为 1,则结果为 +0。
  • 如果 x 为 +∞,则结果为 +∞。

(我的重点)

但更重要的是,log(x)随着x方法0 无限制地减少。所以 -Infinity 似乎是规范做出的合理选择。


推荐阅读