JavaScript | 基礎構文:数値・演算 – Math オブジェクト

JavaScript JavaScript
スポンサーリンク

Math オブジェクトを一言でいうと

Math オブジェクトは、
「よく使う数学の関数や定数をまとめた“計算ツール箱”」 です。

四捨五入したい
絶対値をとりたい
最大値・最小値を知りたい
ランダムな数を作りたい

こういう「ちょっとした数学処理」をするときに、毎回自分で計算式を書くのではなく、
Math.〇〇() を呼び出して使います。

ここが重要です。
Math は「new しない」「インスタンスを作らない」特殊なオブジェクトです。
使うときは必ず
Math.メソッド名(…)
Math.定数名
というかたちで、“そのまま”呼び出します。


Math の基本的な使い方の形

インスタンスを作らない静的オブジェクト

普通のオブジェクトやクラスと違い、Math はこうはしません。

// これはしない(できない)
const m = new Math();
JavaScript

Math は最初から 1 個だけ存在している“道具箱”のようなもので、
使うときは常に次のような書き方になります。

const absValue = Math.abs(-5);
const rounded = Math.round(3.7);
const maxValue = Math.max(10, 3, 7);
JavaScript

どれも
「Math という箱の中の abs/round/max という道具を使う」
というイメージです。

ここが重要です。
Math は「特別な 1 個だけのオブジェクト」。
何かを new したり、コピーしたりせず、
Math.xxx をそのまま使うのが正しい姿です。


よく使う基本メソッド①:絶対値・四捨五入・小数処理

絶対値:Math.abs

絶対値は「数直線で 0 からどれだけ離れているか」。
マイナスを消して正の値にするイメージです。

console.log(Math.abs(5));    // 5
console.log(Math.abs(-5));   // 5
console.log(Math.abs(0));    // 0
JavaScript

「差の大きさだけ知りたい」ときに便利です。

const a = 10;
const b = 7;
const diff = Math.abs(a - b); // 3
JavaScript

四捨五入:Math.round

小数を「四捨五入」して整数にします。

console.log(Math.round(3.2)); // 3
console.log(Math.round(3.5)); // 4
console.log(Math.round(3.7)); // 4
console.log(Math.round(-1.4)); // -1
console.log(Math.round(-1.5)); // -1(JS の仕様上こうなる点は少し特殊)
JavaScript

切り捨て:Math.floor

小数点以下を「切り捨て」ます。

console.log(Math.floor(3.9));  // 3
console.log(Math.floor(3.1));  // 3
console.log(Math.floor(-1.1)); // -2 (より小さい方向へ)
JavaScript

ページ番号計算・インデックス計算などでよく使います。

切り上げ:Math.ceil

小数点以下を「切り上げ」ます。

console.log(Math.ceil(3.1));  // 4
console.log(Math.ceil(3.9));  // 4
console.log(Math.ceil(-1.1)); // -1(大きいほうへ)
JavaScript

実務でよくあるパターン:小数第 n 位で四捨五入

例えば「小数第 2 位で四捨五入」したい場合。

function roundTo2(num) {
  return Math.round(num * 100) / 100;
}

console.log(roundTo2(3.14159)); // 3.14
console.log(roundTo2(1.005));   // 1.01(浮動小数点の誤差でズレることもある)
JavaScript

いったん 100 倍してから四捨五入し、最後に 100 で割る、というパターンです。

ここが重要です。
絶対値・四捨五入・切り捨て・切り上げは、
ユーザーに見せる数値を「きれいな形」に整えるための基本セットです。
特に Math.round / Math.floor / Math.ceil は、
どの方向に丸めたいのかを意識して使い分けることが大事です。


よく使う基本メソッド②:最大値・最小値・累乗・平方根

最大値:Math.max

引数の中で一番大きい数を返します。

console.log(Math.max(3, 10, 7));   // 10
console.log(Math.max(-5, -2, -8)); // -2
JavaScript

配列に対して使いたい場合は、スプレッド構文と組み合わせます。

const nums = [3, 10, 7];
console.log(Math.max(...nums)); // 10
JavaScript

最小値:Math.min

最大値の逆です。

console.log(Math.min(3, 10, 7));   // 3
console.log(Math.min(-5, -2, -8)); // -8

const nums = [3, 10, 7];
console.log(Math.min(...nums)); // 3
JavaScript

累乗:Math.pow(と ** 演算子)

a の b 乗(a^b)を計算します。

console.log(Math.pow(2, 3)); // 8(2の3乗)
console.log(Math.pow(10, 2)); // 100
JavaScript

最近の JavaScript では、累乗演算子 ** も使えます。

console.log(2 ** 3);   // 8
console.log(10 ** 2);  // 100
JavaScript

平方根:Math.sqrt

平方根(ルート)を求めます。

console.log(Math.sqrt(9));   // 3
console.log(Math.sqrt(16));  // 4
console.log(Math.sqrt(2));   // 1.4142...(おおよそ)
JavaScript

2 乗とセットで、「距離」や「ピタゴラスの定理」などにも使えます。

ここが重要です。
Math.max / Math.min は「値の範囲を決めたいとき」、
Math.pow / **Math.sqrt は「指数的な変化」や「根」を扱うときの基本道具です。
特に min/max は、配列の中から一番大きい・小さい値を探す処理で頻出します。


ランダム値生成:Math.random(超頻出)

Math.random の基本挙動

Math.random() は、
0 以上 1 未満の乱数(0 <= x < 1)を返します。

console.log(Math.random()); // 0.123456...
console.log(Math.random()); // 0.987654...
console.log(Math.random()); // 呼ぶたびに違う値
JavaScript

常に 0.〇〇〇… の小数で、1 ちょうどにはなりません。

0 以上 n 未満の整数を作る

例えば「0〜9 のどれかの整数」が欲しい場合。

const n = Math.floor(Math.random() * 10);
console.log(n); // 0〜9 のどれか
JavaScript

流れはこうです。

Math.random() → [0,1)
Math.random() * 10 → [0,10)
Math.floor(…) → 0,1,2,…,9 のいずれか

同様に、「1〜10」のような範囲を作るにはこうします。

function randomInt(min, max) {
  // min 以上 max 以下の整数
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

console.log(randomInt(1, 10)); // 1〜10 のどれか
JavaScript

ランダムに配列の要素を 1 つ選ぶ

const items = ["apple", "banana", "orange"];

const index = Math.floor(Math.random() * items.length);
const choice = items[index];

console.log(choice); // 3つのうちどれか
JavaScript

ここが重要です。
Math.random 単体では「0〜1 の小数」しかくれません。
実際に使うときは必ず
「乱数 × 範囲の幅 → Math.floor で整数化 → 必要なら +min」
というパターンに変換して使う、という感覚を持ってください。


定数:Math.PI など

円周率:Math.PI

円周率 π(パイ)を表す定数です。

console.log(Math.PI); // およそ 3.141592653589793
JavaScript

円の長さや面積にも使えます。

const r = 5;
const circumference = 2 * Math.PI * r; // 円周
const area = Math.PI * r * r;          // 面積

console.log(circumference);
console.log(area);
JavaScript

その他の定数(名前だけ眺めておけば十分)

Math には他にもいくつか定数があります。

Math.E 自然対数の底 e
Math.LN2 2 の自然対数
Math.SQRT2 √2

数値計算やグラフなどを本格的にやるときには役立ちますが、
初心者段階では「Math.PI だけちゃんと覚えておく」くらいで十分です。

ここが重要です。
Math の定数は、「よく使う数学的な値を、自分で書かなくていいようにしてくれているもの」です。
特に π は、3.14… を毎回手打ちするより Math.PI を使うほうが正確で読みやすいです。


初心者として Math で本当に押さえてほしいこと

Math は new しない、“そのまま使う計算道具箱”。
Math.abs(絶対値)、Math.round / Math.floor / Math.ceil(丸め)、
Math.max / Math.min(最大・最小)、Math.random(乱数)は特に頻出。

Math.random は「0〜1 の小数」なので、
Math.floor(Math.random() * N) の形で「0〜N-1 の整数」に変換して使うのが基本パターン。

Math.PI は円周率。円の計算などでほぼ必須。
どのメソッドも「元の値を変えずに、新しい数値を返す」ことを忘れない。

ここが重要です。
Math オブジェクトは「算術演算子だけでは書きづらい、少しだけ“賢い”数値処理」を肩代わりしてくれる存在です。
「丸めたい」「最大値・最小値が欲しい」「ランダムにしたい」と思ったら、
まず Math にそれ用のメソッドがないかを思い出すクセをつけると、
自分で複雑な式をこね回さずに済むようになります。

もし試してみたくなったら、次のような小さな練習をしてみてください。

// 1〜6 のサイコロを 10 回振る
for (let i = 0; i < 10; i++) {
  const dice = Math.floor(Math.random() * 6) + 1;
  console.log(dice);
}

// いくつかの数から最大値・最小値を出す
const nums = [3.7, 9.1, -2, 0, 5.5];
console.log("max:", Math.max(...nums));
console.log("min:", Math.min(...nums));
console.log("rounded first:", Math.round(nums[0]));
JavaScript

実行しながら、「Math がなかったらこれをどう書かなきゃいけないか?」を想像してみると、
Math オブジェクトのありがたみがかなりリアルに感じられるはずです。

タイトルとURLをコピーしました