訳の正確性を保証するものではありませんので必要に応じて原文であるEcma InternationalのECMA-262にある ECMA-262.pdf ( ECMA-262 5.1 Edition )を参照下さい。
訳:2012年04月 webzoit.net
Numberプロトタイプオブジェクトは、値が +0 (、その[[Class]]が、"Number")であるそれ自身のNumberオブジェクトです。 Numberプロトタイプオブジェクトの内部プロパティ[[Prototype]]の値は、標準組み込みObjectプロトタイプオブジェクト(15.2.4)です。 それ以外のはっきりした状態にない場合、以下で定義したNumberプロトタイプオブジェクトのメソッドは、一般的ではなく、それらに渡した this 値は、内部プロパティ[[Class]]の値が、"Number"である場合には、Number値、または、Objectの何れかにしなければいけません。 関数の次の概要については、Numberプロトタイプオブジェクトのプロパティであり、そのフレーズ"this Numberオブジェクト"は、関数の呼び出しにおける this値であるオブジェクト、または、 Type(this値) が、 Numberである場合、Numberが、その名を持つ標準組み込みコンストラクタである場合、式 new Number(this値) によるかのように生成されたオブジェクトの何れかを参照します。 また、そのフレーズ"this Number値"は、 this Numberオブジェクトによって提示したNumber値の何れかを参照し、それは、つまり、 this Numberオブジェクトの内部プロパティ[[PrimitiveValue]]の値、または、その型が、Number である場合、this 値です。 TypeError例外は、 this 値が、内部プロパティ[[Class]]の値が"Number"である場合のオブジェクト、または、型がNumberである値の何れでもない場合に投げられ(スローされ)ます。
Number.prototype.constructor の初期値は、組み込みNumberコンストラクタです。
オプションである radix は、2から36までの範囲内の整数値とすべきです。 radix が、与えられない場合やundefined(未定義)である場合、数字10が、 radix の値として使用されます。 ToInteger(radix) が、数字10である場合、this Number値は、抽象操作ToStringへの引数として与えられ、その結果となるString値が返されます。 ToInteger(radix) が、2と36の範囲内の整数ではない場合、RangeError例外を投げ(スローし)ます。 ToInteger(radix) が、2と36の範囲内の整数でありながらも10ではない場合、その結果は、指定した radix を使用する this Number値の文字列表現です。 文字 a-z は、値10から35という数字として使われます。 radix が10ではない場合、正確なアルゴリズムは、実装依存ですが、しかしながらそのアルゴリズムは、 9.8.1 で指定したように汎用とすべきです。 toString関数は、汎用ではなく、その this 値が、NumberやNumberオブジェクトではない場合、TypeError例外を投げ(スローし)ます。 その為、メソッドとしての使用においてオブジェクトの他の種類への転送は不可です。
ホスト環境の現在のロケールの表記法によって書式化した this Number値を表すString値の生成。 この関数は実装依存であり、許容はされるもののtoStringと同じものを返す為にそれを使用することは推奨されません。 [注釈] この関数の1つめのパラメータは、この標準規格の将来のバージョンで使用されるかもしれません。 それは、つまり、実装は、いかなる場合においてもこのパラメータ位置を使用しないことが推奨されるという事です。
this Number値を返します。 valueOf関数は、汎用ではなく、その this 値が、NumberやNumberオブジェクトではない場合、TypeError例外を投げ(スローし)ます。 その為、メソッドとしての使用においてオブジェクトの他の種類への転送は不可です。
小数点以下fractionDigits桁の10進固定小数点表記で表現した、 this Number値を含む文字列を返します。 fractionDigits が、undefinedである場合、0 であるものとして仮定されます。 (toFixedは、)具体的には、次のステップを実行します。
1. f は、 ToInteger(fractionDigits) とする( fractionDigits が、 undefinedである場合、このステップは値0を生成) 2. f < 0 または、 f > 20 である場合、RangeError例外を投げる(スローする) 3. x は、 this Number値とする 4. x が、 NaNである場合、文字列 "NaN" を返す 5. s は、カラの文字列とする 6. x < 0 である場合、 a. s は、 "-" とする b. x = -x とする 7. x ≧ 10の21乗である場合、 a. m = ToString(x) とする 8.それ以外の場合、 x < 10の21乗 であり、 a. n は、限りなくゼロに近い n ÷ 10のf乗 - x の正確な数学的な値である整数とする n に該当するものが2つある場合、大きい方を選ぶ b. n = 0 である場合、 m は、文字"0"とし、それ以外の場合、 m は、(順にゼロが先行しない) n の10進表現の数字で構成されている文字列とする c. f ≠ 0 である場合、 i. k は、m 内にある文字数とする ii. k ≦ f である場合、 1. z は、文字'0'の f+1-k 回の出現で構成する文字列とする 2. m は、文字列 z と m を連結したものとする 3. k = f + 1 とする iii. a は、m の1つめの k-f 文字とし、 b は、 m の残りの f 文字とする iv. m は、 a 、"." 、b という3つの文字列を連結したものとする 9.文字列 s と m を連結したものを返す
toFixedメソッドのlengthプロパティは、1です。 toFixedメソッドが、引数を1つより多く(2つ以上)伴って呼ばれる場合、その動作は、undefined(未定義)です。(第15項参照) 実装は、0より小さいか、または、20より大きいfractionDigitsの値におけるtoFixedの動作を拡張することが許容されます。 このケースにおけるtoFixedは、そのような値においてRangeErrorを投げる(スローする)必要はありません。 [注釈] toFixedの出力は、toStringは、隣接する数値からその数字を識別するのに十分な有効桁を出力するだけなので一部の値においてはtoString以上により正確なものとなる場合があります。
例えば、 (1000000000000000128).toString() は、 (1000000000000000128).toFixed(0) が、 "1000000000000000128"を返すのに対し、 "1000000000000000100" を返す
仮数の小数点の前の1ケタと仮数の小数点の後のfractionDigits桁を伴う10進指数関数表現で表示した this Number値を含む文字列を返します。 fractionDigitsが、undefined(未定義)である場合、(Numberが常に指数関数表記で表示出力されるこのケースを除き、ToStringと同じように)必要に応じて多くの仮数の桁に一意のNumberを指定したものを含みます。 (toExponentialは、)具体的には、次のステップを実行します。
1. x は、 this Number値とする 2. f は、 ToInteger(fractionDigits) とする 3. x が、 NaNである場合、文字列"NaN"を返す 4. s は、カラの文字列とする 5. x < 0 である場合、 a. s は、 "-" とする b. x = -x とする 6. x = +∞ である場合、 a.文字列 s と"Infinity"を連結したものを返す 7. fractionDigits が、 undefined(未定義)でなく、且つ、 (f < 0 または f > 20) である場合、RangeError例外を投げる(スローする) 8. x = 0 である場合、 a. f = 0 とする b. m は、文字'0' の f+1 回の出現を構成する文字列とする c. e = 0 とする 9.それ以外の場合、 x ≠ 0 であり、 a. fractionDigits が、undefined(未定義)ではない場合、 i. e と n は、可能な限りゼロに近いものである n x 10のe-f乗 - x の正確な数学的な値における 10のf乗 ≦ n ≦ 10のf+1乗のような整数とする e と n のセットのようなものが2つある場合、 n x 10のe-f乗が大きい方を選ぶ b.それ以外の場合、fractionDigits は、undefined(未定義)であり、 i. e、 n、 f は、 n x 10のe-f乗が x 且つ、f が限りなく小さいという条件における数字の値である f ≧ 0 、10のf乗 ≦ n 10のf+1乗のような整数とする f+1 桁を持つ n の10進表現における注釈として、 n は、10で割り切れない、また、n の最小の仮数の桁は、これらの条件によって一意に決まる必要はない。 c. m は、(順にゼロに先行されない) n の10進表現の数字で構成される文字列とする 10. f ≠ 0 である場合、 a. a は、m の1つめの文字とし、b は、m の残りの f 文字とする b. m は、文字列 a、"."、b を連結したものとする 11. e = 0 である場合、 a. c = "+" とする b. d = "0" とする 12.それ以外の場合、 a. e > 0 である場合、 c = "+" とする b.それ以外の場合、e ≦ 0 であり、 i. c = "-" とする ii. e = -e とする c. d は、(順にゼロに先行されない) e の10進表現の数字で構成される文字列とする 13. m は、文字列 m、 "e"、 c、 d を連結したものとする 14.文字列 s と m を連結したものを返す
toExponentialメソッドのlengthプロパティは、1です。 toExponentialメソッドが、引数を1つより多く(2つ以上)伴って呼ばれる場合、その動作はundefined(未定義)です。(第15項参照) 実装は、0より小さいか、または、20より大きいfractionDigitsの値においてtoExponentialの動作を拡張することが許容されます。 このケースにおいてtoExponentialは、そのような値についてRangeErrorを投げる(スローする)必要はありません。 [注釈] 上記規則によって要求される以上のより正確な変換を提供する実装においては、次のステップ 9.b.i の代替バージョンをガイドラインとして使用されることが推奨されます。
i. e、 n、 f は、 n x 10のe-f乗が x 且つ、f が限りなく小さいという条件における数字の値である f ≧ 0、10のf乗 ≦ n ≦ 10のf+1乗のような整数とする n において利用可能なものが複数ある場合、 n x 10のe-f乗が、x という値に限りなく近くなる場合における n の値を選ぶ n として使用可能な値が2つある場合、偶数である方を選ぶ
仮数の小数点の前の1ケタと仮数の小数点の後の precision-1 桁、または、 precision 有効桁を伴う小数固定表記を伴う10進指数関数表記で表示した this Number値を含む文字列を返します。 precision が、 undefined(未定義)である場合、代わりに ToString (9.8.1) を呼びます。 (toPrecisionは、)具体的には、次のステップを実行します。
1. x は、 this Number値とする 2. precision が、 undefined(未定義)である場合、 ToString(x) とする 3. p は、 ToInteger(precision) とする 4. x が、 NaN である場合、文字列"NaN"を返す 5. s は、カラの文字列とする 6. x < 0 である場合、 a. s は、 "-" とする b. x = -x とする 7. x = +∞ である場合、 a.文字列 s と"Infinity"を連結したものを返す 8. p < 1 または、 p > 21 である場合、RangeError例外を投げる(スローする) 9. x = 0 である場合、 a. m は、 文字列'0'の p 回の出現で構成される文字列とする b. e = 0 とする 10.それ以外の場合、 x ≠ 0であり、 a. e と n は、10のp-1乗 ≦ n < 10p乗のような、且つ、可能な限りゼロに近い n x 10のe-p+1乗の正確な数学的な値における整数とする e と n のようなセットが2つある場合、n x 10の e-p+1 乗が大きい方の e と n を選ぶ b. m は、(順にゼロで先行しない) n の 10進表記の数字で構成される文字列とする c. e < -6 または、 e ≧ p である場合、 i. a は、 m の1つめの文字とし、b は、 m の残りの p-1 文字とする ii. m は、文字列 a、 "."、 b を連結したものとする iii. e = 0 である場合、 1. c = "+" と d = "0" とする iv.それ以外の場合、e ≠ 0 であり、 1. e > 0 である場合、 a c = "+" とする 2.それ以外の場合、e < 0 であり、 a c = "-" とする b e = -e とする 3. d は、(順にゼロで先行しない) e の 10進表現の数字で構成される文字列とする v. m は、5つの文字列 s、 m、 "e"、 c、 d を連結したものとする 11. e = p-1 である場合、文字列 s と m を連結したものを返す 12. e ≧ 0 である場合、 a. m は、m の最初の e+1 文字、文字 '.'、m の残りの p-(e+1) 文字を連結したものとする 13. e < 0 である場合、 a. m は、文字列"0."、文字'0'の -(e+1) 回の出現、文字列 m を連結したものとする 14.文字列 s と m を連結したものを返す
toPrecisionメソッドのlengthプロパティは、1です。 toPrecisionメソッドが、引数を1つより多く(2つ以上)伴って呼ばれる場合、その動作は、undefined(未定義)です。(第15項参照) 実装は、1より小さいか、または21より大きい precision の値におけるtoPrecisionの動作を拡張することが許容されます。 このケースにおいては、toPrecisionは、このような値においてRangeErrorを投げる(スローする)必要はありません。