JavaScript: 数学

2022.6.20
Dev

冪乗

冪乗b^xを求めるには、Math.pow(b, x)を用いる。

Math.pow(2, 10) // 1024
Math.pow(10, 3) // 1000

ECMAScript 2016以降では、冪乗演算子(exponentiation operator)b ** xでも同様の結果が得られる。

2 ** 10 // 1024
10 ** 3 // 1000

冪乗演算子では、BigIntの冪乗も計算可能である。

2 ** 64 // 18446744073709552000
2n ** 64n // 18446744073709551616n

対数

自然対数\ln xを求めるには、Math.log(x)を用いる。また、自然対数の底eMath.Eで取得できる。

Math.log(1) // 0
Math.log(Math.E) // 1
Math.log(Math.E ** 2) // 2 

10を底とした常用対数\log_{10} xは、Math.log10(x)、2を底とした対数\log_2 xは、Math.log2(x)でそれぞれ求められる。

Math.log10(10) // 1
Math.log10(123) // 2.089905111439398
Math.log2(128) // 7 

任意の実数bを底とした対数\log_b xは、底の変換公式を用いて計算できる。

\log_b x = \frac{\ln x}{\ln b}
function logb(b, x) {
  return Math.log(x) / Math.log(b);
}

logb(5, 5) // 1
logb(5, 25) // 2

三角関数

\sin x, \cos x, \tan xMath.sin(x), Math.cos(x), Math.tan(x)で求められる。ただし、引数はラジアンであることに注意する。\piMath.PIで取得できる。

Math.sin(Math.PI / 2) // 1
Math.cos(Math.PI / 2) // 6.123233995736766e-17
Math.tan(Math.PI / 4) // 0.9999999999999999

度数法から弧度法に変換

function degToRad(d) {
  return d * (Math.PI / 180);
}

degToRad(180) // 3.141592653589793
degToRad(45) // 0.7853981633974483

弧度法から度数法に変換

function radToDeg(r) {
  return r * (180 / Math.PI);
}

radToDeg(Math.PI / 2) // 90
radToDeg(Math.PI * (3 / 2)) // 270