![トモジのアイコン画像](https://10moji-blog.com/wp-content/uploads/2020/08/吹き出しトモジ.png)
Mathオブジェクトって何?
詳しく知りたい・・
本記事は、
上記のような方に向けて記事を書いています。
こんにちは、トモジです。
私はプログラミング未経験から独学で勉強して、
簡易的な動的サイト・ゲーム・サービスが作れる状態になりました。
本記事は、Mathオブジェクトに関して要点をわかりやすく説明しております。
1.JavaScriptのMathオブジェクト
Mathオブジェクトは、
数値型の値を操作するオブジェクトになり
数学に関する演算機能を補うものになります。
非常にたくさんの機能が提供されておりますので、
今回は前編(オレンジ枠)を順番に説明します。
![numberオブジェクト一覧に関しての説明図](https://10moji-blog.com/wp-content/uploads/2020/12/8936f768570bf945bc49376cb29e841d-1-1024x959.png)
2.基本類
Mathオブジェクトの基本は、
以下の7種類のメンバーがありますので
順番に見ていきましょう。
![Mathオブジェクトの[基本類]の説明図](https://10moji-blog.com/wp-content/uploads/2020/12/43e09c2d4183a1ca543c47184e853a05-1024x660.png)
abs
absは、絶対値を取得します。
![absの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/abs-1024x640.png)
absに関して
cosole.log('絶対値 : ' + Math.abs(-123));
絶対値 : 123
clz32
clzは、
32ビットバイナリで先頭の 0 の個数を返します。
引数には数値(10進数)を入力します。
![clz32の説明図](https://10moji-blog.com/wp-content/uploads/2020/12/clz32-2-1024x947.png)
clz32に関して
// 1178(10進数) → 10010011010(2進数)
console.log('clz32 : ' + Math.clz32(1178));
clz32(1178) : 21
max
maxは、引数の中で最も大きい数値を返します。
![maxに関しての説明図](https://10moji-blog.com/wp-content/uploads/2020/12/max-1024x947.png)
maxに関して
// 引数の中での最大値を出力
console.log('最大値 : ' + Math.max(10, 20, 30, 100, 0));
最大値 : 100
min
minは、引数の中で最も小さい数値を返します。
![minに関しての説明図](https://10moji-blog.com/wp-content/uploads/2020/12/min-1024x947.png)
minに関して
// 引数の中での最小値を出力
console.log('最小値 : ' + Math.min(10, 20, 30, 100, 0));
最小値 : 0
pow
powは、累乗になり
数値を指数回掛け合わせる事になります。
![powに関しての説明図](https://10moji-blog.com/wp-content/uploads/2020/12/pow-2-1024x705.png)
powに関して
console.log('累乗(2の3乗) : ' + Math.pow(2, 3));
累乗(2の3乗) : 8
random
randomは、0〜1未満(1は入らない)
までの小数による乱数を生成します。
![randomの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/random-1024x705.png)
randomに関して
console.log('random : ' + Math.random());
// 乱数なので数値はランダム
random : 0.36119375188882064
sign
signは、指定した値が
正の場合は[1]・負の場合[-1]・0の場合[0]
を返します。
![signの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/sign-1024x705.png)
signに関して
console.log('sign(正の場合) : ' + Math.sign(123));
console.log('sign(負の場合) : ' + Math.sign(-123));
console.log('sign(0の場合) : ' + Math.sign(0));
sign(123) : 1
sign(-123) : -1
sign(0) : 0
3.切り上げ/切り捨て
Mathオブジェクトの[切り上げ/切り捨て]は、
以下の4種類のメンバーがありますので
順番に見ていきましょう。
![Mathオブジェクトの[切り上げ/切り捨て]類の説明図](https://10moji-blog.com/wp-content/uploads/2020/12/e24d63f980488ab91f189ea83cf5a820-1024x456.png)
ceil
ceilは、小数点以下の値を切り上げます。
![ceilの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/ceil-1-1024x705.png)
ceilに関して
// 値が正の場合
console.log('ceil(正の場合) : ' + Math.ceil(1.2));
console.log('ceil(正の場合) : ' + Math.ceil(1.8));
// 値が負の場合
console.log('ceil(負の場合) : ' + Math.ceil(-1.2));
console.log('ceil(負の場合) : ' + Math.ceil(-1.8));
ceil(1.2) : 2
ceil(1.8) : 2
ceil(-1.2) : -1
ceil(-1.8) : -1
floor
floorは、小数点以下の値を切り捨てます。
※負の値の切り捨てに注意
[-2.2
は-2
ではなく-3
になる]
![floorの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/floor-1-1024x705.png)
floorに関して
// 値が正の場合
console.log('floor(正の場合) : ' + Math.floor(1.2));
console.log('floor(正の場合) : ' + Math.floor(1.8));
// 値が負の場合
console.log('floor(負の場合) : ' + Math.floor(-1.2));
console.log('floor(負の場合) : ' + Math.floor(-1.8));
floor(1.2) : 1
floor(1.8) : 1
floor(-1.2) : -2
floor(-1.8) : -2
round
roundは、少数第一位を四捨五入します。
![roundの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/round-1024x705.png)
roundに関して
// 値が正の場合
console.log('round(正の場合) : ' + Math.round(1.2));
console.log('round(正の場合) : ' + Math.round(1.8));
console.log('round(正の場合) : ' + Math.round(1.23));
console.log('round(正の場合) : ' + Math.round(1.93));
// 値が負の場合
console.log('round(負の場合) : ' + Math.round(-1.2));
console.log('round(負の場合) : ' + Math.round(-1.8));
round(正の場合) : 1
round(正の場合) : 2
round(正の場合) : 1
round(正の場合) : 2
round(負の場合) : -1
round(負の場合) : -2
trunc
truncは、小数点以下を単純に切り捨てます。
![truncの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/trunc-1024x705.png)
truncに関して
// 値が正の場合
console.log('trunc(正の場合) : ' + Math.trunc(1.2));
console.log('trunc(正の場合) : ' + Math.trunc(1.8));
// 値が負の場合
console.log('trunc(負の場合) : ' + Math.trunc(-1.2));
console.log('trunc(負の場合) : ' + Math.trunc(-1.8));
trunc(1.2) : 1
trunc(1.8) : 1
trunc(-1.2) : -1
trunc(-1.8) : -1
4.平方根[ルート]
Mathオブジェクトの[平方根]は、
以下の5種類のメンバーがありますので
順番に見ていきましょう。
![Mathオブジェクトの[平方根]類の説明図](https://10moji-blog.com/wp-content/uploads/2020/12/f4faa4fa104f2f76bd049a6ac6859648-1024x523.png)
SQRT1_2
SQRT1_2は、1/2の平方根になります。
![SQRT1_2の説明図](https://10moji-blog.com/wp-content/uploads/2020/12/SQRT1_2-1024x636.png)
SQRT1_2関して
console.log('SQRT1_2 : ' + Math.SQRT1_2);
SQRT1_2 : 0.7071067811865476
SQRT2
SQRT2は、2の平方根になります。
![SQRT2の説明図](https://10moji-blog.com/wp-content/uploads/2020/12/SQRT2-1024x636.png)
SQRT2関して
console.log('SQRT2 : ' + Math.SQRT2);
SQRT2 : 1.4142135623730951
sqrt
sqrtは、平方根になります。
![sqrtの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/sqrt-1024x947.png)
sqrt関して
console.log('sqrt3 : ' + Math.sqrt(3));
console.log('sqrt5 : ' + Math.sqrt(5));
sqrt3 : 1.7320508075688772
sqrt5 : 2.23606797749979
cbrt
cbrtは、立方根になります。
![cbrtの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/cbrt-1024x947.png)
cbrt関して
console.log('cbrt : ' + Math.cbrt(8));
console.log('cbrt : ' + Math.cbrt(27));
cbrt(8) : 2
cbrt(27) : 3
hypot
hypotは、引数の和の平方根になります。
![hypotの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/hypot-1024x631.png)
hypot関して
// ルート2
console.log('hypot(1+1) : ' + Math.hypot(1, 1));
// ルート3
console.log('hypot(1+2) : ' + Math.hypot(1, 2));
hypot(1+1) : 1.4142135623730951
hypot(1+2) : 2.23606797749979
まとめ
最後にこの記事のポイントをまとめておきます。
基本
abs
絶対値を取得clz32
32ビットバイナリでの 0 の個数max
引数の中で最も大きい数値min
引数の中で最も小さい数値pow
累乗random
0〜1未満までの乱数sign
正[1]・負[-1]・0[0]を返す
切り上げ/切り捨て
ceil
小数点以下の値を切り上げfloor
小数点以下の値を切り捨て
[マイナス値に注意]round
少数第一位を四捨五入trunc
数点以下を切り捨て
平方根
SQRT1_2
ルート1/2の値SQRT2
ルート2の値sqrt
平方根cbrt
立方根hypot
引数の和の平方根