情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

ECMAScript 6の新機能(3)数学関連関数

2016/05/27

ECMAScript 6で新しい数学関連関数が幾つか追加されました。

Math.sign

これは数値の符号を返す関数です。

数値が正数である場合には1を返し、負数である場合には-1を返し、0である場合には0を返し、-0である場合には-0を返し、NaNである場合にはNaNを返します。

C:\work\node>node
> Math.sign(-101)
-1
> Math.sign(101)
1
> Math.sign(-Infinity)
-1
> Math.sign(Infinity)
1
> Math.sign(0)
0
> Math.sign(-0)
-0
> Math.sign(NaN)
NaN

Math.trunc

これは数値の小数部を除去する関数です。

> Math.trunc(3.14)
3
> Math.trunc(3.99)
3
> Math.trunc(-3.14)
-3
> Math.trunc(-3.99)
-3

Math.cbrt

これは数値の3乗根を計算する関数です。

> Math.cbrt(27)
3
> Math.cbrt(1)
1
> Math.cbrt(16)
2.519842099789746
> Math.cbrt(4)
1.5874010519681996

三角関数

ECMAScript 6で下のような三角関数が追加されました。

  • Math.sinh・・・双曲線正弦関数です。
  • Math.cosh・・・双曲線余弦関数です。
  • Math.tanh・・・双曲線正接関数です。
  • Math.asinh・・・双曲線正割関数です。
  • Math.acosh・・・双曲線余割関数です。
  • Math.atanh・・・双曲線余接関数です。
  • Math.hypot・・・2つの数値の2乗の和の平方根を計算する関数です。
> Math.sinh(1)
1.1752011936438014
> Math.cosh(1)
1.5430806348152437
> Math.tanh(1)
0.7615941559557649
> Math.asinh(1)
0.8813735870195429
> Math.acosh(1)
0
> Math.atanh(1)
Infinity
> Math.hypot(3, 4)
5

指数対数

ECMAScript 6で下のような指数対数関連の関数が追加されました。

  • Math.expm1・・・Math.exp(x) - 1を計算する関数です。
  • Math.log1p・・・Math.log(1 + x)を計算する関数です。
  • Math.log2・・・2を底とする対数を計算する関数です。
  • Math.log10・・・10を底とする対数を計算する関数です。
> Math.expm1(1e-10)
1.00000000005e-10
> Math.exp(1e-10)-1
1.000000082740371e-10
> Math.log1p(1e-16)
1e-16
> Math.log(1 + 1e-16)
0
> Math.log2(9)
3.169925001442312
> Math.log10(101)
2.0043213737826426

Math.clz32

これは32ビットの整数のビット列の先頭に幾つ0が連続しているかを返す関数です。

> Math.clz32(0b01000000000000000000000000000000)
1
> Math.clz32(0b00100000000000000000000000000000)
2
> Math.clz32(0b00000000000000000000000000000001)
31

なお、0bから始まる数値リテラルは2進数リテラルです。

Math.fround

これは数値を32ビットの浮動小数点数に丸める関数です。

Math.imul

これは32ビットの整数の乗算を行い、下位32ビットを32ビットの整数として返す関数です。

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-ecmascript 2015, ecmascript 6, Javascript