Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

JavaScript辞典

  1. トップページ
  2. JavaScript辞典
  3. Math.max() / min() / abs() / random()

Math.max() / min() / abs() / random()

数値の比較や数学的な計算を行うためのメソッドです。最大値・最小値の取得、乱数の生成、絶対値、累乗、平方根の計算ができます。

構文
// 最大値を返します。
var num = Math.max(数値1, 数値2, ...);

// 最小値を返します。
var num = Math.min(数値1, 数値2, ...);

// 0以上1未満のランダムな数値を返します。
var num = Math.random();

// 絶対値を返します。
var num = Math.abs(数値);

// 累乗を返します。
var num = Math.pow(底, 指数);

// 平方根を返します。
var num = Math.sqrt(数値);
メソッド一覧
メソッド概要
Math.max(値1, 値2, ...)引数の中から最大の数値を返します。引数がない場合は『-Infinity』を返します。
Math.min(値1, 値2, ...)引数の中から最小の数値を返します。引数がない場合は『Infinity』を返します。
Math.random()0以上1未満の範囲で擬似乱数を返します。引数は取りません。
Math.abs(数値)数値の絶対値を返します。負の数は正の数に変換され、正の数はそのまま返されます。
Math.pow(底, 指数)底を指数で累乗した値を返します。ES6以降は『**』演算子でも同じ計算ができます。
Math.sqrt(数値)数値の平方根を返します。負の数を渡すと『NaN』が返されます。
サンプルコード
// Math.max() と Math.min() で最大値・最小値を取得します。
console.log(Math.max(10, 25, 3)); // 『25』と出力されます。
console.log(Math.min(10, 25, 3)); // 『3』と出力されます。

// 配列の最大値を取得する場合はスプレッド構文を使います。
var scores = [85, 92, 78, 96, 88];
console.log(Math.max(...scores)); // 『96』と出力されます。
console.log(Math.min(...scores)); // 『78』と出力されます。

// Math.random() で乱数を生成します。
console.log(Math.random()); // 0以上1未満のランダムな数値が出力されます。

// 1〜6のサイコロを作る実用例
var dice = Math.floor(Math.random() * 6) + 1;
console.log(dice); // 1〜6のいずれかの整数が出力されます。

// 指定範囲のランダムな整数を生成する関数
function getRandomInt(min, max) {
	return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(getRandomInt(10, 20)); // 10〜20のいずれかの整数が出力されます。

// Math.abs() で絶対値を取得します。
console.log(Math.abs(-15)); // 『15』と出力されます。
console.log(Math.abs(15)); // 『15』と出力されます。

// 2点間の差を求める実用例
var a = 30;
var b = 75;
console.log(Math.abs(a - b)); // 『45』と出力されます。どちらが大きくても正の値になります。

// Math.pow() で累乗を計算します。
console.log(Math.pow(2, 10)); // 『1024』と出力されます。2の10乗です。
console.log(2 ** 10); // 『1024』と出力されます。ES6の累乗演算子でも同じ結果です。

// Math.sqrt() で平方根を計算します。
console.log(Math.sqrt(144)); // 『12』と出力されます。
console.log(Math.sqrt(2)); // 『1.4142135623730951』と出力されます。
実行結果
25                  // Math.max(10, 25, 3)
3                   // Math.min(10, 25, 3)
96                  // Math.max(...scores)
78                  // Math.min(...scores)
0.7342...           // Math.random() — 実行ごとに異なります
15                  // Math.abs(-15)
15                  // Math.abs(15)
45                  // Math.abs(30 - 75)
1024                // Math.pow(2, 10)
1024                // 2 ** 10
12                  // Math.sqrt(144)
1.4142135623730951  // Math.sqrt(2)
概要

Mathオブジェクトは数学的な定数と関数を提供する組み込みオブジェクトです。コンストラクタではないため『new Math()』とは書かず、すべてのメソッドを『Math.max()』のように直接呼び出します。

『Math.random()』は0以上1未満のランダムな数値を返しますが、そのままでは使いにくいため『Math.floor()』と組み合わせて整数にするのが一般的です。1〜Nの乱数を生成するには『Math.floor(Math.random() * N) + 1』というパターンを使います。なお『Math.random()』は暗号学的に安全ではないため、パスワード生成などのセキュリティ用途には向きません。

『Math.pow()』はES6以降、累乗演算子『**』で代替できます。また、Mathオブジェクトには円周率を表す『Math.PI』や自然対数の底を表す『Math.E』といった定数も用意されています。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。