Math
Math は、数学的な定数と関数を提供するプロパティとメソッドを持つ、組み込みのオブジェクトです。関数オブジェクトではありません。
解説
他のグローバルオブジェクトと異なり、Math はコンストラクタではありません。Math オブジェクトのすべてのプロパティとメソッドは、静的です。円周率を表す定数 π は、Math.PI として参照でき、正弦関数は、 Math.sin(x) として呼び出すことができます (ここでの x は、メソッドの引数です)。定数は、 JavaScript における実数での完全な精度で定義されています。
メモ: 多くの Math 関数の精度は実装に依存します。
これは、ブラウザーごとに結果が異なる場合があることを意味し、同じ JavaScript エンジン上であっても、 OS やアーキテクチャが異なれば結果が異なる場合があります。
静的プロパティ
Math.E-
ネイピア数 (オイラー数)。これは自然対数の底として用いられる数学定数で、約
2.718です。 Math.LN2-
2の自然対数。約0.693です。 Math.LN10-
10の自然対数。約2.303です。 Math.LOG2E-
2 を底とした
Eの対数。約1.443です。 Math.LOG10E-
10 を底とした
Eの対数。約0.434です。 Math.PI-
円周率。約
3.14159です。 Math.SQRT1_2-
½ の平方根 (または 1/√2 とひとしいすう)。約
0.707です。 Math.SQRT2-
2の平方根。約1.414です。
静的メソッド
Math.abs(x)-
xの絶対値を返す。 Math.acos(x)-
xのアークコサイン (逆余弦) を返す。 Math.acosh(x)-
xのハイパーボリックアークコサイン (双曲線逆余弦) を返す。 Math.asin(x)-
xのアークサイン (逆正弦) を返す。 Math.asinh(x)-
xのハイパーボリックアークサイン (双曲線逆正弦) を返す。 Math.atan(x)-
xのアークタンジェント (逆正接) を返す。 Math.atanh(x)-
xのハイパーボリックアークタンジェント (双曲線逆正接) を返す。 Math.atan2(y, x)-
引数で指定されたの比率のアークタンジェント (逆正接) を返す。
Math.cbrt(x)-
xの立方根を返す。 Math.ceil(x)-
x以上の最小の整数を返す。 Math.clz32(x)-
xを 2 進数 32 ビット整数値で表した数の先頭の 0 の個数を返す。 Math.cos(x)-
xのコサイン (余弦) を返す。 Math.cosh(x)-
xのハイパーボリックコサイン (双曲線余弦) を返す。 Math.exp(x)-
Exを返します。ここでxは引数であり、Eはオイラー定数 (2.718…, 自然対数の低) です。 Math.expm1(x)-
exp(x)から1を引いた値を返す。 Math.floor(x)-
x以下の最大の整数を返す。 Math.fround(x)-
xに近似の 単精度 浮動小数点数を返す。 Math.hypot([x[, y[, …]]])-
引数の二乗和の平方根を返す。
Math.imul(x, y)-
xとyの 32 ビット乗算の結果を返す。 Math.log(x)-
xの自然対数 (㏒e) を返す。 Math.log1p(x)-
xの1 + xの自然対数 (㏒e) を返す。 Math.log10(x)-
xの 10 を底とした対数 (log10) を返す。 Math.log2(x)-
xの 2 を底とした対数 (log2) を返す。 Math.max([x[, y[, …]]])-
引数として与えた複数の値の中で最大の値を返す。
Math.min([x[, y[, …]]])-
引数として与えた複数の値の中で最小の値を返す。
Math.pow(x, y)-
xをyで累乗した値、すなわちxyを返す。 Math.random()-
0以上1未満の疑似乱数を返す。 Math.round(x)-
xを四捨五入して、近似の整数を返す Math.sign(x)-
xの符号を返す。xが正、負、 0 のいずれであるかを返す。 Math.sin(x)-
xのサイン (正弦) を返す。 Math.sinh(x)-
xのハイパーボリックサイン (双曲線正弦) を返す。 Math.sqrt(x)-
xの平方根を返す Math.tan(x)-
xのタンジェント (正接) を返す。 Math.tanh(x)-
xのハイパーボリックサイン (双曲線正接) を返す。 Math.trunc(x)-
数値
xの小数点以下を削除し、整数の部分を返す。
例
角度とラジアンの間の変換
三角関数 (sin(), cos(), tan(), asin(), acos(), atan(), atan2()) は、角度にラジアンを要求したり、返したりします。
人間は角度で考える傾向があり、 (CSS 変形関数など) 一部の関数角度を受け付けますので、手軽に両者の間を変換する関数を用意しておくといいでしょう。
js
function degToRad(degrees) {
return degrees * (Math.PI / 180);
};
function radToDeg(rad) {
return rad / (Math.PI / 180);
};
正三角形の高さの計算
正三角形の高さを計算したい場合、側辺の長さが 100 であるとわかっている場合は、隣の角に正接を乗じた長さは、反対側と等しくなるという数式を使用することができます。
JavaScript では、次のようにして実現することができます。
js
50 * Math.tan(degToRad(60)).
degToRad() 関数を使用して 60 度をラジアンに変換しています。これは Math.tan() がラジアンの入力値を要求するからです。
2 つの値の間にある整数の乱数を返す
これは Math.random() と Math.floor() の組み合わせで実現できます。
js
function random(min, max) {
const num = Math.floor(Math.random() * (max - min + 1)) + min;
return num;
}
random(1, 10);
仕様書
| Specification |
|---|
| ECMAScript Language Specification # sec-math-object |
ブラウザーの互換性
BCD tables only load in the browser