ES12 中的 Math 方法详解

随着 JavaScript 的不断发展,ES12 中新增了一些 Math 方法,本文将详细介绍其中的五个方法:Math.exp1()、Math.log1p()、Math.expm1()、Math.cosh()、Math.sinh()。

Math.exp1()

Math.exp1() 方法返回 $e^x - 1$,其中 $e$ 为自然对数的底数,$x$ 为参数。这个方法相当于 Math.exp(x) - 1,但是当 $x$ 很小的时候,Math.exp(x) - 1 的精度会下降,而 Math.exp1(x) 则能够保证精度。

示例代码:

Math.exp1(1e-10); // 1.00000000005e-10
Math.exp(1e-10) - 1; // 1.000000082740371e-10

Math.log1p()

Math.log1p() 方法返回 $ln(1+x)$,其中 $x$ 为参数。这个方法相当于 Math.log(1 + x),但是当 $x$ 很小的时候,Math.log(1 + x) 的精度会下降,而 Math.log1p(x) 则能够保证精度。

示例代码:

Math.log1p(1e-10); // 1.000000005e-10
Math.log(1 + 1e-10); // 1.000000082740371e-10

Math.expm1()

Math.expm1() 方法返回 $e^x - 1$,其中 $x$ 为参数。这个方法相当于 Math.exp(x) - 1,但是当 $x$ 很小的时候,Math.exp(x) - 1 的精度会下降,而 Math.expm1(x) 则能够保证精度。

示例代码:

Math.expm1(1e-10); // 1.00000000005e-10
Math.exp(1e-10) - 1; // 1.000000082740371e-10

Math.cosh()

Math.cosh() 方法返回 $cosh(x)$,其中 $x$ 为参数。

示例代码:

Math.cosh(0); // 1
Math.cosh(1); // 1.5430806348152437

Math.sinh()

Math.sinh() 方法返回 $sinh(x)$,其中 $x$ 为参数。

示例代码:

Math.sinh(0); // 0
Math.sinh(1); // 1.1752011936438014

总结

以上就是 ES12 中新增的 Math 方法的详细介绍。这些方法虽然在日常开发中不是很常用,但是在一些特殊的场景下,它们的精度优势会显现出来,因此在需要保证计算精度的场景下,我们可以优先选择使用这些方法。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65bdc5fbadd4f0e0ff7679cc