--- title: Math slug: Web/JavaScript/Reference/Global_Objects/Math tags: - JavaScript - Math - Namespace - Reference - 名前空間 translation_of: Web/JavaScript/Reference/Global_Objects/Math ---
Math
は、数学的な定数と関数を提供するプロパティとメソッドを持つ、組み込みのオブジェクトです。関数オブジェクトではありません。
Math
は {{jsxref("Number")}} 型で動作します。 {{jsxref("BigInt")}} 型では動作しません。
他のグローバルオブジェクトと異なり、Math
はコンストラクタではありません。Math
オブジェクトのすべてのプロパティとメソッドは、静的です。円周率を表す定数πは、Math.PI
として参照でき、正弦関数は、 Math.sin(x)
として呼び出すことができます (ここでの x
は、メソッドの引数です)。定数は、 JavaScript における実数での完全な精度で定義されています。
メモ: 多くの Math
関数の精度は実装に依存します。
これは、ブラウザーごとに結果が異なる場合があることを意味し、同じ JavaScript エンジン上であっても、 OS やアーキテクチャが異なれば結果が異なる場合があります。
2.718
です。2
の自然対数。約 0.693
です。10
の自然対数。約 2.303
です。E
の対数。約 1.443
です。E
の対数。約 0.434
です。3.14159
です。0.707
です。2
の平方根。約 1.414
です。x
の絶対値を返す。x
のアークコサイン (逆余弦) を返す。x
のハイパーボリックアークコサイン (双曲線逆余弦) を返す。x
のアークサイン (逆正弦) を返す。x
のハイパーボリックアークサイン (双曲線逆正弦) を返す。x
のアークタンジェント (逆正接) を返す。x
のハイパーボリックアークタンジェント (双曲線逆正接) を返す。x
の立方根を返す。x
以上の最小の整数を返す。x
を 2 進数 32 ビット整数値で表した数の先頭の 0 の個数を返す。x
のコサイン (余弦) を返す。x
のハイパーボリックコサイン (双曲線余弦) を返す。Ex
を返します。ここで x
は引数であり、 E
はオイラー定数 (2.718
…, 自然対数の低) です。exp(x)
から 1
を引いた値を返す。x
以下の最大の整数を返す。x
に近似の 単精度 浮動小数点数を返す。x
と y
の 32 ビット乗算の結果を返す。x
の自然対数 (㏒e) を返す。x
の 1 + x
の自然対数 (㏒e) を返す。x
の 10 を底とした対数 (log10) を返す。x
の 2 を底とした対数 (log2) を返す。x
を y
で累乗した値、すなわち xy
を返す。0
以上 1
未満の疑似乱数を返す。x
を四捨五入して、近似の整数を返すx
の符号を返す。x
が正、負、 0 のいずれであるかを返す。x
のサイン (正弦) を返す。x
のハイパーボリックサイン (双曲線正弦) を返す。x
の平方根を返すx
のタンジェント (正接) を返す。x
のハイパーボリックサイン (双曲線正接) を返す。x
の小数点以下を削除し、整数の部分を返す。三角関数 (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度をラジアンに変換しています。これは {{jsxref("Math.tan()")}} がラジアンの入力値を要求するからです。
これは {{jsxref("Math.random()")}} と {{jsxref("Math.floor()")}} の組み合わせで実現できます。
function random(min, max) { const num = Math.floor(Math.random() * (max - min + 1)) + min; return num; } random(1, 10);
仕様書 |
---|
{{SpecName('ESDraft', '#sec-math-object', 'Math')}} |
{{Compat("javascript.builtins.Math")}}