JavaScript/Math
Math
オブジェクトは、数学的な定数とメソッドを提供する組み込みオブジェクトです。このオブジェクトは、三角関数、対数関数、乱数生成などの基本的な数学操作を実行するための便利な方法を提供します[1]。
説明
編集Math
オブジェクトはコンストラクタではなく、すべてのプロパティとメソッドは静的です。Math
オブジェクトのプロパティとメソッドには、Math.プロパティ名
またはMath.メソッド名()
の形式でアクセスします。
プロパティとメソッド
編集静的プロパティ
編集名称 | 解説 |
---|---|
Math.E
|
オイラー数、自然対数の底 (約 2.718) です。 |
Math.LN10
|
10 の自然対数 (約 2.302) です。 |
Math.LN2
|
2 の自然対数 (約 0.693) です。 |
Math.LOG10E
|
e の 10 を底とする対数 (約 0.434) です。 |
Math.LOG2E
|
e の 2 を底とする対数 (約 1.442) です。 |
Math.PI
|
円周率 (約 3.14159) です。 |
Math.SQRT1_2
|
1/2 の平方根 (約 0.707) です。 |
Math.SQRT2
|
2 の平方根 (約 1.414) です。 |
Math.name
|
Math オブジェクトの名前。 "Math"
|
Math [ Symbol.toStringTag ]
|
Object.prototype.toString() メソッドで使用される、オブジェクトの既定の文字列表現を指定するシンボルです。Math オブジェクトの場合、"Math" という文字列を返します。
|
静的アクセサ
編集静的メソッド
編集名称 | カテゴリー | 解説 |
---|---|---|
Math.abs() |
数値操作 | 数値の絶対値を返します。 |
Math.acos() |
三角関数 | 数値のアークコサイン(逆余弦)を返します。 |
Math.acosh() |
双曲線関数 | 数値の逆双曲線余弦を返します。 |
Math.asin() |
三角関数 | 数値のアークサイン(逆正弦)を返します。 |
Math.asinh() |
双曲線関数 | 数値の逆双曲線正弦を返します。 |
Math.atan() |
三角関数 | 数値のアークタンジェント(逆正接)を返します。 |
Math.atan2() |
三角関数 | 2つの数値のアークタンジェント(逆正接)を返します。 |
Math.atanh() |
双曲線関数 | 数値の逆双曲線正接を返します。 |
Math.cbrt() |
数値操作 | 数値の立方根を返します。 |
Math.ceil() |
数値操作 | 数値の小数点以下を切り上げた整数を返します。 |
Math.clz32() |
ビット操作 | 数値の32ビット表現での先頭のゼロの数を返します。 |
Math.cos() |
三角関数 | 数値のコサイン(余弦)を返します。 |
Math.cosh() |
双曲線関数 | 数値の双曲線余弦を返します。 |
Math.exp() |
指数関数 | 数値の指数関数(e^x)を返します。 |
Math.expm1() |
指数関数 | 数値の指数関数(e^x - 1)を返します。 |
Math.floor() |
数値操作 | 数値の小数点以下を切り捨てた整数を返します。 |
Math.fround() |
数値操作 | 数値を最も近い32ビット単精度浮動小数点数に変換します。 |
Math.hypot() |
数値操作 | 与えられた数値の平方和の平方根(ユークリッド距離)を返します。 |
Math.imul() |
ビット操作 | 2つの数値の32ビット整数乗算を返します。 |
Math.log() |
対数関数 | 数値の自然対数(底はe)を返します。 |
Math.log10() |
対数関数 | 数値の常用対数(底は10)を返します。 |
Math.log1p() |
対数関数 | 数値の1を加えた値の自然対数を返します。 |
Math.log2() |
対数関数 | 数値の2を底とする対数を返します。 |
Math.max() |
数値操作 | 与えられた数値のうち最大の値を返します。 |
Math.min() |
数値操作 | 与えられた数値のうち最小の値を返します。 |
Math.pow() |
数値操作 | 与えられた数値のべき乗を返します。 |
Math.random() |
乱数生成 | 0以上1未満のランダムな数値を返します。 |
Math.round() |
数値操作 | 数値の小数点以下を四捨五入した整数を返します。 |
Math.sign() |
数値操作 | 数値の符号を返します(正: 1、負: -1、ゼロ: 0)。 |
Math.sin() |
三角関数 | 数値のサイン(正弦)を返します。 |
Math.sinh() |
双曲線関数 | 数値の双曲線正弦を返します。 |
Math.sqrt() |
数値操作 | 数値の平方根を返します。 |
Math.tan() |
三角関数 | 数値のタンジェント(正接)を返します。 |
Math.tanh() |
双曲線関数 | 数値の双曲線正接を返します。 |
Math.trunc() |
数値操作 | 数値の小数点以下を切り捨てた整数を返します。 |
- カテゴリー:
- 数値操作: 数値の変換や操作を行うメソッド。
- 三角関数: 三角関数(サイン、コサイン、タンジェントなど)を計算するメソッド。
- 双曲線関数: 双曲線関数(ハイパボリックサイン、コサインなど)を計算するメソッド。
- 指数関数: 指数や対数を計算するメソッド。
- ビット操作: ビットレベルの操作を行うメソッド。
- 乱数生成: ランダムな数値を生成するメソッド。
例
編集Math.random() を使用して乱数を生成するプログラム
編集以下のプログラムは、Math.random()
を使用して指定された範囲内の乱数を生成します。
// 0以上1未満の乱数を生成 console.log(Math.random()); // 例: 0.7564321789 // min以上max未満の乱数を生成する関数 function getRandomArbitrary(min, max) { return Math.random() * (max - min) + min; } console.log(getRandomArbitrary(1, 10)); // 例: 5.327890123 // min以上max以下の整数の乱数を生成する関数 function getRandomInt(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; } console.log(getRandomInt(1, 10)); // 例: 7
このプログラムでは、Math.random()
を使用して様々な範囲の乱数を生成する方法を示しています。
三角関数を使用して円上の点を計算するプログラム
編集以下のプログラムは、Math.sin()
と Math.cos()
を使用して円上の点の座標を計算します。
// 円の中心座標と半径 const centerX = 100; const centerY = 100; const radius = 50; // 角度(ラジアン)に対する円上の点の座標を計算 function getPointOnCircle(angle) { return { x: centerX + radius * Math.cos(angle), y: centerY + radius * Math.sin(angle) }; } // 0度の点の座標 const point0 = getPointOnCircle(0); console.log(point0); // { x: 150, y: 100 } // 90度(π/2ラジアン)の点の座標 const point90 = getPointOnCircle(Math.PI / 2); console.log(point90); // { x: 100, y: 150 } // 円周上の8点の座標を計算 for (let i = 0; i < 8; i++) { const angle = (i / 8) * 2 * Math.PI; const point = getPointOnCircle(angle); console.log(`点${i}: (${point.x.toFixed(2)}, ${point.y.toFixed(2)})`); }
このプログラムでは、Math.sin()
と Math.cos()
を使用して円周上の点の座標を計算しています。
Math.max() と Math.min() を使用して配列内の最大値と最小値を見つけるプログラム
編集以下のプログラムは、Math.max()
と Math.min()
を使用して配列内の最大値と最小値を見つけます。
const numbers = [5, 2, 9, 1, 7, 4, 6, 3, 8]; // 配列内の最大値を見つける const max = Math.max(...numbers); console.log(`最大値: ${max}`); // 最大値: 9 // 配列内の最小値を見つける const min = Math.min(...numbers); console.log(`最小値: ${min}`); // 最小値: 1 // 配列が空の場合は-Infinityと+Infinityが返される const emptyArray = []; console.log(Math.max(...emptyArray)); // -Infinity console.log(Math.min(...emptyArray)); // Infinity
このプログラムでは、スプレッド演算子(...
)を使用して配列の要素を Math.max()
と Math.min()
に渡し、配列内の最大値と最小値を見つけています。
注意点
編集- 精度: JavaScript の
Number
型は IEEE 754 浮動小数点数を使用しているため、数値計算には精度の限界があります。 - NaN: 数学的に定義されていない結果(例: 負の数の平方根)を計算しようとすると、
NaN
が返されます。 - 引数の型変換:
Math
のメソッドは、数値以外の引数を自動的に数値に変換しようとします。 - Math.random() のセキュリティ:
Math.random()
は暗号的に安全な乱数ではありません。暗号用途にはCrypto.getRandomValues()
を使用してください。
脚註
編集- ^ Math オブジェクトは、JavaScript での数学計算を簡単に行うために使用されます。