:pぴー.sendせんど(:pぴー, :pぴー)

mokoaki
mokoriso@gmail.com

2016/12/24

JavaScript ES6時代の前にES5をおさらい 組み込みオブジェクト Math

Chrome55で確認

// コンストラクタを使用してオブジェクトを作成したりはしない
// 定数や算術計算関数を利用するよ

typeof Math.protottpe
=> undefined

typeof Math
=> object

下記は Math

定数いっぱい

Math.E => 2.718281828459045
Math.LN10 => 2.302585092994046
Math.LN2 => 0.6931471805599453
Math.LOG2E => 1.4426950408889634
Math.LOG10E => 0.4342944819032518
Math.PI => 3.141592653589793
Math.SQRT1_2 => 0.7071067811865476
Math.SQRT2 => 1.4142135623730951

三角関数

Math.acos(x)
Math.asin(x)
Math.atan(x)
Math.atan2(y, x)
Math.cos(x)
Math.sin(x)
Math.tan(x)

round(x)

// 最も近い整数を返す
// 四捨五入とも違うぽい
// 閾値(0.5とか)では、正数も負数も正の方向の正数になる

Math.round(-1.51) => -2
Math.round(-1.5) => -1 // 注意
Math.round(-1.49) => -1
Math.round(-1.01) => -1
Math.round(-1) => -1
Math.round(-0.99) => -1
Math.round(-0.51) => -1
Math.round(-0.5) => -0 // 注意
Math.round(-0.49) => -0
Math.round(-0.01) => -0
Math.round(0) => 0
Math.round(0.01) => 0
Math.round(0.49) => 0
Math.round(0.5) => 1 // 注意
Math.round(0.51) => 1
Math.round(0.99) => 1
Math.round(1) => 1
Math.round(1.01) => 1
Math.round(1.49) => 1
Math.round(1.5) => 2 // 注意
Math.round(1.51) => 2

floor(x)

// 数値を切り捨てる
// 負数は負の方向の整数になる

Math.floor(-1.51) => -2
Math.floor(-1.5) => -2
Math.floor(-1.49) => -2
Math.floor(-1.01) => -2
Math.floor(-1) => -1
Math.floor(-0.99) => -1
Math.floor(-0.51) => -1
Math.floor(-0.5) => -1
Math.floor(-0.49) => -1
Math.floor(-0.01) => -1
Math.floor(0) => 0
Math.floor(0.01) => 0
Math.floor(0.49) => 0
Math.floor(0.5) => 0
Math.floor(0.51) => 0
Math.floor(0.99) => 0
Math.floor(1) => 1
Math.floor(1.01) => 1
Math.floor(1.49) => 1
Math.floor(1.5) => 1
Math.floor(1.51) => 1

ceil(x)

// 数値を切り上げる
// 正数も負数も正の方向の整数になる

Math.ceil(-1.51) => -1
Math.ceil(-1.5) => -1
Math.ceil(-1.49) => -1
Math.ceil(-1.01) => -1
Math.ceil(-1) => -1
Math.ceil(-0.99) => 0
Math.ceil(-0.51) => -0
Math.ceil(-0.5) => -0
Math.ceil(-0.49) => -0
Math.ceil(-0.01) => -0
Math.ceil(0) => 0
Math.ceil(0.01) => 1
Math.ceil(0.49) => 1
Math.ceil(0.5) => 1
Math.ceil(0.51) => 1
Math.ceil(0.99)  => 1
Math.ceil(1) => 1
Math.ceil(1.01)  => 2
Math.ceil(1.49) => 2
Math.ceil(1.5) => 2
Math.ceil(1.51) => 2

max(num1, num2…)

// 可変長引数を取り、最も大きい数値を返す
// 数値以外が含まれていた場合、戻り値がNaNになる

Math.max(1, 2, 3, 4, 5)
=> 5

Math.max("a", 2, 3, 4, 5)
=> NaN

min(num1, num2…)

// 可変長引数を取り、最も小さい数値を返す
// 数値以外が含まれていた場合、戻り値がNaNになる

Math.min(1, 2, 3, 4, 5)
=> 1

Math.min("a", 2, 3, 4, 5)
=> NaN

abs(x)

// 絶対値を返す

Math.abs(-7)
=> 7

exp(x)

// 指数関数 Math.Eのx乗を返す

Math.exp(2)
=> 7.38905609893065

log(x)

// xの自然対数を返す

Math.log(2)
=> 0.6931471805599453

sqrt(x)

// xの平方根を返す

Math.sqrt(2)
=> 1.4142135623730951

pow(x, y)

// xのy乗の結果を返す

Math.pow(3, 3)
=> 27

random()

// 0から<1の間のランダムな数値を返す

Math.random()
=> 0.45689959234353705