本頁の目次 目次

15.8 Math オブジェクト (The Math Object)

Math オブジェクトは、関数であるものもある名前のついたプロパティを持つ、単一のオブジェクトである。

Math オブジェクトの内部 [[Prototype]] プロパティの値は、 Object プロトタイプオブジェクトである (セクション 15.2.3.1)。 Math オブジェクトの内部 [[Class]] プロパティの値は、 "Math" である。

Math オブジェクトは [[Construct]] プロパティを持たない; Math オブジェクトを new 式でコンストラクタとして使用することは出来ない。

Math オブジェクトは [[Call]] プロパティを持たない; Math オブジェクトを関数として呼出すことは出来ない。

NOTE 本仕様において、フレーズ "x の数値" はセクション 8.5 に定義する技術的な意味を持つ。

15.8.1 Math オブジェクトの値プロパティ (Value Properties of the Math Object)

15.8.1.1 E

自然対数の低 e の数値であり、おおよそ 2.7182818284590452354 である。

このプロパティは、属性 { DontEnum, DontDelete, ReadOnly } を持つ。

15.8.1.2 LN10

10 の自然対数の数値であり、おおよそ 2.302585092994046 である。

このプロパティは、属性 { DontEnum, DontDelete, ReadOnly } を持つ。

15.8.1.3 LN2

2 の自然対数の数値であり、おおよそ 0.6931471805599453 である。

このプロパティは、属性 { DontEnum, DontDelete, ReadOnly } を持つ。

15.8.1.4 LOG2E

2 を低とする、自然対数の低 e の対数の数値; この値はおおよそ 1.4426950408889634 である。

このプロパティは、属性 { DontEnum, DontDelete, ReadOnly } を持つ。

NOTE Math.LOG2E の値はおおよそ Math.LN2 の値の逆数である。

15.8.1.5 LOG10E

10 を低とする、自然対数の低 e の対数の数値; この値はおおよそ 0.4342944819032518 である。

このプロパティは、属性 { DontEnum, DontDelete, ReadOnly } を持つ。

NOTE Math.LOG10E の値は、おおよそ Math.LN10 の値の逆数である。

15.8.1.6 PI

π, 直径に対する円周の比 の数値であり、おおよそ 3.1415926535897932 である。

このプロパティは、属性 { DontEnum, DontDelete, ReadOnly } を持つ。

15.8.1.7 SQRT1_2

1/2 の平方根の数値であり、おおよそ 0.7071067811865476 である。

このプロパティは、属性 { DontEnum, DontDelete, ReadOnly } を持つ。

NOTE Math.SQRT1_2 の値は、おおよそ Math.SQRT2 の値の逆数である。

15.8.1.8 SQRT2

2 の平方根の数値であり、おおよそ 1.4142135623730951 である。

このプロパティは、属性 { DontEnum, DontDelete, ReadOnly } を持つ。

15.8.2 Math オブジェクトの関数プロパティ (Function Properties of the Math Object)

このセクションにあける各関数は、引数のそれぞれについて (2 個以上の場合は左から右の順に) ToNumber 演算子を適用し、そして結果の数値上で計算を行う。

下に説明する関数において、記号 NaN, -0, +0, -∞, +∞ は、セクション 8.5 に述べる数値を参照する。

NOTE 関数 acos, asin, atan, atan2, cos, exp, log, pow, sin, sqrt の振る舞いは、重要な境界値をあらわすある種の引数値に対して規定の結果を要求するだけで、他は正確にはここには規定されない。他の引数値については、これらの関数は、ありふれた数学関数の結果の近似値の算出が意図されるが、近似のアルゴリズムの選択においてある程度の自由度が許される。実装者は、与えられたハードウェアプラットフォーム上で C プログラマが利用可能なものと同じ ECMAScript の数学ライブラリを使用できるべきであると一般的に意図される。

アルゴリズムの選択が実装に残されたとはいえ、実装は、 Sun Microsystems による自由配布可能な数学ライプラリ(fdlibm-comment@sunpro.eng.sun.com) fdlibm に含まれる IEEE 754 算数に近似値アルゴリズムを使用することを推奨される (この標準で規定はされない) 。本仕様はまた、重要な境界値をあらわすある種の引数値に対して規定の結果を要求する。

15.8.2.1 abs (x)

x の絶対値を返す; 結果は x と同じ大きさで、正符号を持つ。

  • x が NaN ならば、 結果は NaN である。
  • x が -0 ならば、 結果は +0 である。
  • x が -∞ ならば、 結果は +∞ である。

15.8.2.2 acos (x)

実装依存で x のアークコサインの近似値を返す。結果はラジアンで表現され、 +0 から +∞ の範囲である。

  • x が NaN ならば、 結果は NaN である。
  • x が 1 より大きいならば、 結果は NaN である。
  • x が -1 より小さいならば、 結果は NaN である。
  • x が厳密に 1 ならば、 結果は +0 である。

15.8.2.3 asin (x)

実装依存で x のアークサインの近似値を返す。結果はラジアンで表現され、 -π/2 から +π/2 の範囲である。

  • x が NaN ならば、 結果は NaN である。
  • x が 1 より大きいならば、 結果は NaN である。
  • x が -1 未満ならば、 結果は NaN である。
  • x が +0 ならば、 結果は +0 である。
  • x が -0 ならば、 結果は -0 である。

15.8.2.4 atan (x)

実装依存で x のアークタンジェントの近似値を返す。結果はラジアンで表現され、 -π/2 から +π/2 の範囲である。

  • x が NaN ならば、 結果は NaN である。
  • x が +0 ならば、 結果は +0 である。
  • x が -0 ならば、 結果は -0 である。
  • x が +∞ ならば、 結果は実装依存の +π/2 の近似値である。
  • x が -∞ ならば、 結果は実装依存の -π/2 の近似値である。

15.8.2.5 atan2 (y, x)

引数 yx の商 y/x のアークタンジェントを実装依存の近似値で返す。 yx の符号は結果の四分円の決定に使用される。故意に、また伝統的に、引数 2 つのアークタンジェント関数は一つ目の引数が y で 2 番目が x であることに注意。 結果はラジアンで表され、 -∞ から +∞ の範囲である。

  • xy のどちらかが NaN ならば、 結果は NaN である。
  • y>0 かつ x が +0 ならば、 結果は実装依存の +π/2 の近似値である。
  • y>0 かつ x が -0 ならば、 結果は実装依存の +π/2 の近似値である。
  • y が +0 かつ x>0 ならば、 結果は +0 の近似値である。
  • y が +0 かつ x が +0 ならば、 結果は +0 の近似値である。
  • y が +0 かつ x が -0 ならば、 結果は実装依存の +π の近似値である。
  • y が +0 かつ x<0 ならば、 結果は実装依存の +π の近似値である。
  • y が -0 かつ x>0 ならば、 結果は -0 である。
  • y が -0 かつ x が +0 ならば、 結果は -0 である。
  • y が -0 かつ x が -0 ならば、 結果は実装依存の -π の近似値である。
  • y が -0 かつ x<0 ならば、 結果は実装依存の -π の近似値である。
  • y<0 かつ x が +0 ならば、 結果は実装依存の -π/2 の近似値である。
  • y<0 かつ x が -0 ならば、 結果は実装依存の -π/2 の近似値である。
  • y>0 かつ y が有限 かつ x が +∞ ならば、 結果は +0 である。
  • y>0 かつ y が有限 かつ x が -∞ ならば、 結果は実装依存の +π の近似値である。
  • y<0 かつ y が有限 かつ x が +∞ ならば、 結果は -0 である。
  • y<0 かつ y が有限 かつ x が -∞ ならば、 結果は実装依存の -π の近似値である。
  • y が +∞ かつ x が有限 ならば、 結果は実装依存の +π/2 の近似値である。
  • y が -∞ かつ x が有限 ならば、 結果は実装依存の -π/2 の近似値である。
  • y が +∞ かつ x が +∞ ならば、 結果は実装依存の +π/4 の近似値である。
  • y が +∞ かつ x が -∞ ならば、 結果は実装依存の +3π/4 の近似値である。
  • y が -∞ かつ x が +∞ ならば、 結果は実装依存の -π/4 の近似値である。
  • y が -∞ かつ x が -∞ ならば、 結果は実装依存の -3π/4 の近似値である。

15.8.2.6 ceil (x)

x より小さくなく数学的整数と等しい、最小の (-∞ に近い) 数値を返す。 x が既に整数ならば、 結果は x である。

  • x が NaN ならば、 結果は NaN である。
  • x が +0 ならば、 結果は +0 である。
  • x が -0 ならば、 結果は -0 である。
  • x が +∞ ならば、 結果は +∞ である。
  • x が -∞ ならば、 結果は -∞ である。
  • x が 0 未満で -1 より大きいならば、 結果は -0 である。

Math.ceil(x) の値は、 -Math.floor(-x) の値と同じである。

15.8.2.7 cos (x)

実装依存で x のコサインの近似値を返す。引数はラジアンで表現される。

  • x が NaN ならば、 結果は NaN である。
  • x が +0 ならば、 結果は 1 である。
  • x が -0 ならば、 結果は 1 である。
  • x が +∞ ならば、 結果は NaN である。
  • x が -∞ ならば、 結果は NaN である。

15.8.2.8 exp (x)

実装依存で x の指数関数 (ex 乗、 e は自然対数の低) の近似値を返す。

  • x が NaN ならば、 結果は NaN である。
  • x が +0 ならば、 結果は 1 である。
  • x が -0 ならば、 結果は 1 である。
  • x が +∞ ならば、 結果は +∞ である。
  • x が -∞ ならば、 結果は +0 である。

15.8.2.9 floor (x)

x より大きくなく数学的整数と等しい、最大の (+∞ に近い) 数値を返す。 x が既に整数ならば、 結果は x である。

  • x が NaN ならば、 結果は NaN である。
  • x が +0 ならば、 結果は +0 である。
  • x が -0 ならば、 結果は -0 である。
  • x が +∞ ならば、 結果は +∞ である。
  • x が -∞ ならば、 結果は -∞ である。
  • x が 0 より大きく 1 より小さいならば、 結果は +0 である。

NOTE Math.floor(x) の値は -Math.ceil(-x) の値と等しい。

15.8.2.10 log (x)

実装依存で x の自然対数の近似値を返す。

  • x が NaN ならば、 結果は NaN である。
  • x が less than 0 ならば、 結果は NaN である。
  • x が +0 または -0 ならば、 結果は -∞ である。
  • x が 1 ならば、 結果は +0 である。
  • x が +∞ ならば、 結果は +∞ である。

15.8.2.11 max ( [ value1 [ , value2 [ , ... ] ] ] )

0 個以上の引数を与えられ、各引数に ToNumber を呼出し、結果の値の最大を返す。

  • 引数を与えられないならば、 結果は -∞ である。
  • 任意の値がが NaN ならば、 結果は NaN である。
  • 最大値を決定する値の比較はセクション 11.8.5 にあるように行われるが、 +0 は -0 より大きいとみなす。

max メソッドの length プロパティは 2 である。

15.8.2.12 min ( [ value1 [ , value2 [ , ... ] ] ] )

0 個以上の引数を与えられて、各引数に ToNumber を呼出し、結果の値の最小を返す。

  • 引数が与えられないならば、 結果は +∞ である。
  • 任意の値がが NaN ならば、 結果は NaN である。
  • 最小値を決定する値の比較はセクション 11.8.5 にあるように行われるが、 +0 は -0 より大きいとみなす。

min メソッドの length プロパティは 2 である。

15.8.2.13 pow (x, y)

実装依存で xy 乗 の近似値を返す。

  • y が NaN ならば、 結果は NaN である。
  • y が +0 ならば、 x が NaN であっても、結果は 1 である。
  • y が -0 ならば、 x が NaN であっても、結果は 1 である。
  • x が NaN かつ y が 0 以外 ならば、 結果は NaN である。
  • abs(x)>1 かつ y が +∞ ならば、 結果は +∞ である。
  • abs(x)>1 かつ y が -∞ ならば、 結果は +0 である。
  • abs(x)==1 かつ y が +∞ ならば、 結果は NaN である。
  • abs(x)==1 かつ y が -∞ ならば、 結果は NaN である。
  • abs(x)<1 かつ y が +∞ ならば、 結果は +0 である。
  • abs(x)<1 かつ y が -∞ ならば、 結果は +∞ である。
  • x が +∞ かつ y>0 ならば、 結果は +∞ である。
  • x が +∞ かつ y<0 ならば、 結果は +0 である。
  • x が -∞ かつ y>0 かつ y が奇数 ならば、 結果は -∞ である。
  • x が -∞ かつ y>0 かつ y が奇数でない ならば、 結果は +∞ である。
  • x が -∞ かつ y<0 かつ y が奇数 ならば、 結果は -0 である。
  • x が -∞ かつ y<0 かつ y が奇数でない ならば、 結果は +0 である。
  • x が +0 かつ y>0 ならば、 結果は +0 である。
  • x が +0 かつ y<0 ならば、 結果は +∞ である。
  • x が -0 かつ y>0 かつ y が奇数 ならば、 結果は -0 である。
  • x が -0 かつ y>0 かつ y が奇数でない ならば、 結果は +0 である。
  • x が -0 かつ y<0 かつ y が奇数 ならば、 結果は -∞ である。
  • x が -0 かつ y<0 かつ y が奇数でない ならば、 結果は +∞ である。
  • x<0 かつ x が有限 かつ y が有限 かつ y が整数でない ならば、 結果は NaN である。

15.8.2.14 random ( )

実装依存のアルゴリズムまたは手順で、ランダムに、または擬似的にランダムに、おおよそ一定の配分で選ばれる 0 以上 1 未満の正符号の数値を返す。この関数は引数をとらない。

15.8.2.15 round (x)

x に接近する数学的整数に等しい数値を返す。 2 つの整数値が x に等しく接近しているならば、結果は +∞ に近い方の数値である。 x が既に整数ならば、 結果は x である。

  • x が NaN ならば、 結果は NaN である。
  • x が +0 ならば、 結果は +0 である。
  • x が -0 ならば、 結果は -0 である。
  • x が +∞ ならば、 結果は +∞ である。
  • x が -∞ ならば、 結果は -∞ である。
  • x が 0 より大きく 0.5 より小さいならば、 結果は +0 である。
  • x が 0 より小さく -0.5 と同じかより大きいならば、 結果は -0 である。

NOTE Math.round(3.5) は 4 を返すが、 Math.round(-3.5) は -3 を返す。

NOTE Math.round(x) の値は Math.floor(x+0.5) の値と等しいが、 x が -0 であるか、または 0 より小さく -0.5 と同じかより大きい場合を除く; これらのケースで Math.round(x) は -0 を返すが、 Math.floor(x+0.5) は +0 を返す。

15.8.2.16 sin (x)

実装依存で x のサインの近似値を返す。引数はラジアンで表現される。

  • x が NaN ならば、 結果は NaN である。
  • x が +0 ならば、 結果は +0 である。
  • x が -0 ならば、 結果は -0 である。
  • x が +∞ または -∞ ならば、 結果は NaN である。

15.8.2.17 sqrt (x)

実装依存で x の平方根の近似値を返す。

  • x が NaN ならば、 結果は NaN である。
  • x less than 0 ならば、 結果は NaN である。
  • x が +0 ならば、 結果は +0 である。
  • x が -0 ならば、 結果は -0 である。
  • x が +∞ ならば、 結果は +∞ である。

15.8.2.18 tan (x)

実装依存で x のタンジェントの近似値を返す。引数はラジアンで表現される。

  • x が NaN ならば、 結果は NaN である。
  • x が +0 ならば、 結果は +0 である。
  • x が -0 ならば、 結果は -0 である。
  • x が +∞ または -∞ ならば、 結果は NaN である。

Page Contents

Issued: / Revised: / All rights reserved. © 2002-2016 TAKI