JS.next

JavaScriptの最新実装情報を追うブログ

新しいMath関数が実装された

概要

ES2015でMathオブジェクトに新しく入った17個の関数が実装された。


実装された関数

 Math.sign(x)   [3.22.17]

  xが正の数なら+1、負の数なら-1+0,-0ならそれぞれ+0,-0を返す

 Math.trunc(x)   [3.22.17]

  floatが切り捨て、ceilが切り上げ、roundが四捨五入なのに対して、truncはxの整数部分を返す
  つまり正の数に対してはfloat、負の数に対してはceilと同じ結果を返す

 Math.hypot([v1 [, v2 [, ... ]]])   [3.24.7]

  任意数の引数をとり、各引数の二乗の総和の二乗根を返す
  つまり Math.sqrt(v1*v1 + v2*v2 + ...) と同じ結果を返す

 Math.cbrt(x)   [3.25.1]

  xの三乗根("cube root")を返す

 Math.imul(x, y)   [3.18.4]

  xとyの32ビット整数乗算結果を返す
  主に最適化の為に重要

 Math.fround(x)   [3.24.39.2]

  JSの通常数値、64bit浮動小数点型(double)を精度の低い32bit浮動小数点型(float)に直す
  主に最適化の為に重要

 Math.clz32(x)   [3.24.39.2]

  xをuint32としたときの先導する0ビットの数を返す("count leading zero")
  (例)Math.clz32(100000000)『0b00000101111101011110000100000000』→ 5
  主に最適化の為に重要

 Math.log10(x)   [3.24.7]

  xが10の何乗になるかを返す

 Math.log2(x)   [3.24.7]

  xが2の何乗になるかを返す

 Math.log1p(x)   [3.25.1]
 Math.expm1(x)   [3.25.1]
 Math.cosh(x)   [3.24.0]
 Math.sinh(x)   [3.24.0]
 Math.tanh(x)   [3.24.0]
 Math.acosh(x)   [3.24.0]
 Math.asinh(x)   [3.24.0]
 Math.atanh(x)   [3.24.0]


実装されたバージョン

V8 3.18.4 3.22.17 3.24.0 3.24.7 3.24.39.2 3.25.1(完了) 3.28.26(デフォルト有効)