Math
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
解説
他のグローバルオブジェクトと異なり、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.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 Language Specification # sec-math-object |
ブラウザーの互換性
BCD tables only load in the browser