随着 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