代码之家  ›  专栏  ›  技术社区  ›  M.A.K. Ripon Technastar

为什么Math.log(0)在JavaScript中给出无穷大?

  •  -1
  • M.A.K. Ripon Technastar  · 技术社区  · 7 年前

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

    console.log(Math.log(0))
    2 回复  |  直到 5 年前
        1
  •  3
  •   T.J. Crowder    7 年前

    从根本上说,因为 that's how it's specified :

    Math.log ( x )

    返回x的自然对数的依赖于实现的近似值。

    • 如果x为NaN,则结果为NaN。
    • 如果x为+0或-0,则结果为-。
    • 如果x为+,则结果为+。

    (我的重点)

    但更重要的是, log(x) 作为 x 方法 0 decreases without bound . 因此,对于规范来说,无限似乎是一个合理的选择。

        2
  •  -2
  •   elasticman    7 年前

    因为日志0未定义,所以他们以这种方式实现了它。

    console.log(无穷大);/*无穷大*/

    console.log(Math.pow(101000));/*无穷大*/

    console.log(Math.log(0));/*-无穷大*/

    console.log(1/无穷大);/*0 */

    https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Infinity#Beispiele