Math
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
* Some parts of this feature may have varying levels of support.
Math は名前空間オブジェクトで、数学的な定数と関数を提供する静的プロパティおよびメソッドがあります。
解説
他のグローバルオブジェクトと異なり、Math はコンストラクターではありません。 new 演算子と共に使用したり、 Math オブジェクトを関数として呼び出したりすることはできません。 Math のプロパティとメソッドはすべて静的です。
メモ:
多くの Math 関数の精度は実装に依存します。
これは、ブラウザーごとに結果が異なる場合があることを意味し、同じ JavaScript エンジン上であっても、 OS やアーキテクチャが異なれば結果が異なる場合があります。
静的プロパティ
Math.E-
ネイピア数 (オイラー数)。これは自然対数の底として用いられる数学定数で、約
2.718です。 Math.LN10-
10の自然対数。約2.303です。 Math.LN2-
2の自然対数。約0.693です。 Math.LOG10E-
10 を底とした
Eの対数。約0.434です。 Math.LOG2E-
2 を底とした
Eの対数。約1.443です。 Math.PI-
円周率。約
3.14159です。 Math.SQRT1_2-
½ の平方根 (または 1/√2 と等しい数)。約
0.707です。 Math.SQRT2-
2の平方根。約1.414です。 Math[Symbol.toStringTag]-
[Symbol.toStringTag]プロパティの初期値は文字列"Math"です。このプロパティはObject.prototype.toString()で使用されます。
静的メソッド
Math.abs()-
入力値の絶対値を返します。
Math.acos()-
入力値のアークコサイン (逆余弦) を返します。
Math.acosh()-
入力値のハイパーボリックアークコサイン (双曲線逆余弦) を返します。
Math.asin()-
入力値のアークサイン (逆正弦) を返します。
Math.asinh()-
入力値のハイパーボリックアークサイン (双曲線逆正弦) を返します。
Math.atan()-
入力値のアークタンジェント (逆正接) を返します。
Math.atan2()-
引数で指定された比率のアークタンジェント (逆正接) を返します。
Math.atanh()-
入力値のハイパーボリックアークタンジェント (双曲線逆正接) を返します。
Math.cbrt()-
入力値の立方根を返します。
Math.ceil()-
x以上の最小の整数を返します。 Math.clz32()-
xを 2 進数 32 ビット整数値で表した数の先頭の 0 の個数を返します。 Math.cos()-
入力値のコサイン (余弦) を返します。
Math.cosh()-
入力値のハイパーボリックコサイン (双曲線余弦) を返します。
Math.exp()-
ex を返します。ここで x は引数であり、e はオイラー定数(
2.718…, 自然対数の底)です。 Math.expm1()-
exp(x)から1を引いた値を返します。 Math.floor()-
入力値以下の最大の整数を返します。
Math.f16round()-
入力値に最も近い半精度浮動小数点表現を返します。
Math.fround()-
入力値に最も近い単精度浮動小数点表現を返します。
Math.hypot()-
引数の二乗和の平方根を返します。
Math.imul()-
入力値の 32 ビット乗算の結果を返します。
Math.log()-
入力値の自然対数(㏒e)を返します。
Math.log10()-
入力値の 10 を底とした対数 (log10) を返します。
Math.log1p()-
入力値の
1 + xの自然対数(㏒e)を返します。 Math.log2()-
入力値の 2 を底とした対数 (log2) を返します。
Math.max()-
引数として与えた複数の値の中で最大の値を返します。
Math.min()-
引数として与えた複数の値の中で最小の値を返します。
Math.pow()-
xをyで累乗した値、すなわちxyを返します。 Math.random()-
0以上1未満の擬似乱数を返します。 Math.round()-
xを四捨五入して、近似の整数を返します。 Math.sign()-
入力値の符号を返します。
xが正、負、 0 のいずれであるかを返します。 Math.sin()-
入力値のサイン (正弦) を返します。
Math.sinh()-
入力値のハイパーボリックサイン (双曲線正弦) を返します。
Math.sqrt()-
入力値の平方根を返します。
Math.sumPrecise()-
渡された反復可能オブジェクトの数値の合計を返します。中間結果における浮動小数点精度の損失を回避します。
Math.tan()-
入力値のタンジェント (正接) を返します。
Math.tanh()-
入力値のハイパーボリックサイン (双曲線正接) を返します。
Math.trunc()-
入力値の小数点以下を削除し、整数の部分を返します。
例
>角度とラジアンの間の変換
三角関数 (sin(), cos(), tan(), asin(), acos(), atan(), atan2()) は、角度にラジアンを要求したり、返したりします。
人間は角度で考える傾向があり、(CSS 座標変換など)一部の関数角度を受け付けますので、手軽に両者の間を変換する関数を用意しておくといいでしょう。
function degToRad(degrees) {
return degrees * (Math.PI / 180);
}
function radToDeg(rad) {
return rad / (Math.PI / 180);
}
正三角形の高さの計算
正三角形の高さを計算したい場合、側辺の長さが 100 であるとわかっている場合は、隣の角に正接を乗じた長さは、反対側と等しくなるという数式を使用することができます。

JavaScript では、次のようにして実現することができます。
50 * Math.tan(degToRad(60));
degToRad() 関数を使用して 60 度をラジアンに変換しています。これは Math.tan() がラジアンの入力値を要求するからです。
2 つの値の間にある整数の乱数を返す
これは Math.random() と Math.floor() の組み合わせで実現できます。
function random(min, max) {
const num = Math.floor(Math.random() * (max - min + 1)) + min;
return num;
}
random(1, 10);
仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-math-object> |
ブラウザーの互換性
Loading…