目次
概要
JavaScriptでの数値計算は、四則演算だけでなく、Math オブジェクトを使用することで科学技術計算や統計処理に必要な高度な演算が可能です。
本記事では、絶対値、べき乗、平方根、対数といった主要な数学関数の使い方と、ネイピア数(自然対数の底)などの定数について解説します。
仕様(入出力)
- 入力: 計算対象となる数値
- 出力: 各数学関数による演算結果(コンソールログ)
基本の使い方
JavaScriptに組み込まれている数学関数は以下の通りです。これらはインスタンス化せずに Math.メソッド名() の形で直接使用します。
主要な数学メソッド一覧
| メソッド | 意味 | 戻り値の例 (x=16, y=2) |
Math.abs(x) | 絶対値 (Absolute Value) | 負の数を正の数にするMath.abs(-10) → 10 |
Math.pow(x, y) | べき乗 (Power) | x を y乗した値Math.pow(2, 3) → 8 |
Math.sign(x) | 符号判定 (Sign) | 正なら1、負なら-1、0なら0 |
Math.sqrt(x) | 平方根 (Square Root) | √x の値Math.sqrt(16) → 4 |
Math.log(x) | 自然対数 (Natural Logarithm) | 底を e とする対数 ($log_e x$) |
Math.exp(x) | 指数関数 (Exponential) | $e^x$ (eのx乗) の値 |
コード全文(HTML / JavaScript)
HTML (index.html)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mathメソッド計算デモ</title>
<script src="advanced-math.js" defer></script>
</head>
<body>
<div class="container">
<h1>演算結果の確認</h1>
<p>コンソール(F12)を開いてログを確認してください。</p>
</div>
</body>
</html>
JavaScript (advanced-math.js)
各種計算メソッドの挙動を確認するスクリプトです。
/**
* 高度な数学計算のデモンストレーション
*/
const performMathOperations = () => {
console.log('--- 1. 絶対値 (Math.abs) ---');
// 数値の「大きさ」だけを知りたい場合に使用します(距離など)
const posNum = 10;
const negNum = -10;
console.log(`abs(${posNum}): ${Math.abs(posNum)}`); // 10
console.log(`abs(${negNum}): ${Math.abs(negNum)}`); // 10
console.log('--- 2. べき乗 (Math.pow) ---');
// 2の10乗 (1024)
// ※ ES2016以降は「2 ** 10」とも書けます
const base = 2;
const exponent = 10;
console.log(`${base}の${exponent}乗: ${Math.pow(base, exponent)}`);
console.log('--- 3. 符号判定 (Math.sign) ---');
// 値がプラスかマイナスか0かを判定します
// 戻り値: 1 (正), -1 (負), 0 (ゼロ), -0, NaN
console.log(`sign(50): ${Math.sign(50)}`); // 1
console.log(`sign(-25): ${Math.sign(-25)}`); // -1
console.log(`sign(0): ${Math.sign(0)}`); // 0
console.log('--- 4. 平方根 (Math.sqrt) ---');
// ルート16 = 4
// 面積から一辺の長さを求める際などに使用
const area = 16;
console.log(`sqrt(${area}): ${Math.sqrt(area)}`);
console.log('--- 5. 自然対数と指数関数 (Math.log / Math.exp) ---');
// ネイピア数 e (約2.718)
console.log(`ネイピア数 (Math.E): ${Math.E}`);
// log(e) は 1 になります
console.log(`log(e): ${Math.log(Math.E)}`); // 1
// exp(1) は eの1乗 = e になります
console.log(`exp(1): ${Math.exp(1)}`); // 2.718...
};
// 実行
performMathOperations();
カスタムポイント
- べき乗演算子 (
**):Math.pow(a, b)は、現代のJavaScriptではa ** bと記述するのが一般的です。可読性が高いため、特別な理由がない限りこちらへの書き換えを推奨します。 - 底の異なる対数:
Math.log(x)は自然対数(底が $e$)です。常用対数(底が10)を使いたい場合はMath.log10(x)、底が2の場合はMath.log2(x)を使用してください。
注意点
- 負の数の平方根:
Math.sqrt(-1)など、負の数を引数に渡すとNaN(Not a Number)が返されます。虚数計算は標準機能ではサポートされていません。 Math.signの挙動:Math.signはboolean(true/false)ではなく、数値(1,-1,0)を返します。条件分岐で使う際は注意してください。
応用
2点間の距離を求める(ユークリッド距離)
Math.sqrt と Math.pow(または **)を組み合わせることで、座標上の2点間の距離を計算できます。
/**
* 2点間の距離を計算する関数
* √(x2 - x1)^2 + (y2 - y1)^2
*/
const calculateDistance = (x1, y1, x2, y2) => {
const diffX = x2 - x1;
const diffY = y2 - y1;
// Math.hypot(diffX, diffY) を使うとさらに簡単に書けます
return Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2));
};
console.log(`距離: ${calculateDistance(0, 0, 3, 4)}`); // 5
まとめ
Math オブジェクトのメソッドを活用することで、複雑な計算式を自分で実装することなく、高速かつ正確に数学的な処理を行うことができます。特に Math.abs(絶対値)や Math.sqrt(平方根)は、UIのアニメーション計算やデータ分析など、幅広い分野で使用される必須メソッドです。
