みなさん、こんにちは!日夜Web開発の現場でコードと格闘している、チーフアーキテクトの「おやっさん」です。
JavaScriptを学び始めているあなた、日々コツコツとコードを書いていて本当に素晴らしいですね!新しいことを学ぶのは、それだけで大きな一歩です。
ところで、プログラムを書いていると、避けて通れないのが「数値の計算」です。「えっ、数学? 学生時代に苦手だったから、聞いただけで頭が痛くなりそう……」と思ったあなた。大丈夫ですよ、全く心配いりません!
JavaScriptの世界には、面倒で複雑な計算をあなたの代わりに一瞬でやってくれる、とても優秀な「電卓(道具)」がたくさん用意されています。あなたはただ、その道具の使い方を覚えるだけでいいんです。
今回は、数ある計算の中でも、グラフィックの制御やアニメーション、ちょっとしたお買い物サイトの計算などでよく使う「べき乗(累乗)」「平方根(ルート)」「立方根(3乗根)」について、どこよりも優しく、身近な例え話を使って紐解いていきましょう!
エディタを片手に、リラックスして読んでみてくださいね。
—
1. 同じ数を何度もかける!「べき乗(累乗)」
まずは「べき乗」です。名前は難しそうですが、要するに「同じ数を何回も掛け算すること」です。
たとえば、お買い物をしているシーンを想像してみてください。
「1個2円の不思議なアメがあります。このアメは、1日経つと2倍(2×2=4円)になり、2日経つとさらに2倍(2×2×2=8円)になり、3日経つとさらに2倍(2×2×2×2=16円)になります……」
このように、同じ「2」を何度も掛け合わせる計算が「べき乗」です。
JavaScriptでこれを計算する方法は、新旧合わせて2つのやり方があります。
方法①:昔ながらの頼れる道具 `Math.pow()`
まずは、昔から使われている `Math.pow()` という道具(メソッド)です。
`pow` は「Power(力、べき乗)」の略です。
// Math.pow(掛け合わせたい数, 何回かけるか)
const candyPrice = Math.pow(2, 3); // 2を3回かける(2 2 2)
console.log(candyPrice); // 結果は「8」になります!
これは「フードプロセッサー」のようなものです。「2」と「3」という材料を放り込むと、中で自動的に `2 × 2 × 2` を計算して、きれいに整えられた `8` を取り出してくれます。
方法②:今の大本命!直感的で書きやすい “(べき乗演算子)
実は、2016年にJavaScriptがパワーアップした際、もっと直感的に書ける``(アスタリスク2つ)という記号が登場しました。
足し算の `+` や引き算の `-` と同じ感覚で使えます。
// 掛け合わせたい数 何回かけるか
const doubleSize = 2 3; // 2の3乗(2 2 2)
console.log(doubleSize); // 結果はやっぱり「8」です!
現場でも、最近はほとんどのエンジニアがこの “ を使っています。見た目がすっきりしていて、ノートに書く数式に近くて可愛いですよね。
—
2. 面積から1辺の長さを割り出す!「平方根(ルート)」
次は、べき乗の「逆」の計算をしてみましょう。それが「平方根(へいほうこん)」、いわゆる「ルート」です。
例え話として、「正方形のクッキー」を思い浮かべてください。
あなたの手元に、面積が「9平方センチメートル」の正方形のクッキーがあります。
「このクッキーの、たて(またはよこ)の1辺の長さは何センチだろう?」と考えたとします。
「同じ数を2回かけて『9』になる、元の数はなーんだ?」というクイズですね。答えは「3(3×3=9)」です。
この「3」を見つけ出す計算を、JavaScriptでは `Math.sqrt()` という道具で行います。
`sqrt` は「Square Root(平方根)」の略です。
// Math.sqrt(元になる面積)
const sideLength = Math.sqrt(9); // 同じ数を2回かけて「9」になる数を探す
console.log(sideLength); // 結果は「3」になります!
💡 つまずきがちなポイント:「半分にするのとは違うの?」
ここでプログラミング初心者の多くが、ふとこう思ってしまいます。
「あれ? 2で割る(半分にする)のとは違うんだっけ?」
大丈夫、ここ、すごくつまずきやすいところです! ゆっくり整理しましょう。
- 9を半分(2で割る)にすると: `4.5` です。
- 9の平方根(同じ数を2回かけて9になる数)は: `3` です。
「半分にする」のではなく、「自分自身を掛け合わせてその数になるパートナー(相棒)を探す」のが平方根です。そう覚えると、スッキリしませんか?
—
3. 立体的な箱から1辺の長さを探す!「立方根(3乗根)」
最後は、さらに一歩進んで「立方根(りっぽうこん)」です。
今度はクッキーではなく、「正六面体(サイコロ型)のプレゼントボックス」をイメージしてください。
この箱の体積(中身の広さ)は「27立方センチメートル」です。
「この箱の、1辺の長さは何センチだろう?」と考えます。
今度のクイズは、「同じ数を3回かけて『27』になる、元の数はなーんだ?」です。
答えは「3(3×3×3=27)」ですね。
この「3」を一瞬で探してくれるのが、`Math.cbrt()` という道具です。
`cbrt` は「Cube Root(立方根・3乗根)」の略。Cube(キューブ)は「立方体」のことですね。
// Math.cbrt(元になる体積)
const boxSideLength = Math.cbrt(27); // 同じ数を3回かけて「27」になる数を探す
console.log(boxSideLength); // 結果は「3」になります!
3Dのアニメーションを作ったり、画面上の立方体のサイズを計算したりするときに、この `Math.cbrt()` がそっとあなたを助けてくれます。
—
4. 現場の知恵:1つにまとめたサンプルコードで遊んでみよう!
ここまでの道具たちを、1つのファイルにまとめて動かせるサンプルコードを用意しました。
ぜひエディタに貼り付けて、数字を色々変えて遊んでみてください。
「もしここを4に変えたら、どうなるかな?」と実験してみるのが、プログラミングが一番早く上達する秘訣ですよ!
// ==========================================
// JavaScript べき乗・平方根・立方根の実験室
// ==========================================
// 1. べき乗(掛け合わせる)
const base = 5;
const exponent = 3;
// おなじみの 演算子を使って、5の3乗(5 5 5)を計算
const powerResult = base exponent;
console.log(`${base} の ${exponent} 乗は: ${powerResult} です!`); // 125
// 2. 平方根(2乗してその数になる相棒探し)
const area = 64; // 例えば、面積が64の正方形
const side = Math.sqrt(area);
console.log(`面積が ${area} の正方形の1辺の長さは: ${side} です!`); // 8
// 3. 立方根(3乗してその数になる相棒探し)
const volume = 125; // 例えば、体積が125のサイコロ
const edge = Math.cbrt(volume);
console.log(`体積が ${volume} のサイコロの1辺の長さは: ${edge} です!`); // 5
—
おやっさんからの温かいアドバイス
最後に、現場で戦う私から、ちょっとした安心材料をお渡しします。
JavaScriptで小数の計算(例えば `0.1 + 0.2` など)をすると、パソコンの仕組み上の都合で、たまに `0.30000000000000004` のような「ものすごく細かいおまけ(誤差)」がついてしまうことがあります。
これは「浮動小数点数の丸め誤差」と呼ばれるもので、あなたのコードが間違っているわけではありません。
もし、平方根やべき乗の計算をしていて、おかしな小数が出てきても、「あ、これが噂のお茶目な誤差か!」と笑い飛ばして大丈夫。実務では `Math.round()`(四捨五入)などの道具を使って、優しく整えてあげれば解決します。
焦らず、一歩ずつ、これらの便利な道具たちと仲良くなっていってくださいね。
あなたが書くこれからのコードが、誰かのWebサイトを素敵に彩ることを心から応援しています。またいつでも頼ってくださいね!

コメント