本頁の目次 目次 次頁: 15-2_Object_Objects 前頁: 15_Native_ECMAScript_Objects
グローバルオブジェクトは [[Construct]] プロパティを持たない;
演算子を添えてコンストラクタとしてグローバルオブジェクトを使用することはできない。new
グローバルオブジェクトは [[Call]] プロパティを持たない。関数としてグローバルオブジェクトを呼び出すことはできない。
グローバルオブジェクトの [[Prototype]] 及び [[Class]] プロパティの値は実装依存である。
Nan
の初期値は NaN (セクション 8.5) である。このプロパティの属性は { DontEnum, DontDelete } である。
Infinity
の初期値は +∞ (セクション 8.5) である。このプロパティの属性は { DontEnum, DontDelete } である。
undefined
の初期値は undefined (セクション 8.1) である。このプロパティの属性は { DontEnum, DontDelete } である。
eval 関数が引数 x で呼出されるとき、次のステップが取られる:
throw
のはずである。例外として Result(3).value を投げる。eval プロパティの値は直接呼出し以外 (つまり、 CallExpression 中の MenberExpression である Identifier としてのその名前の明示的な利用による以外) の任意の方法で用いられるか、または eval プロパティに割り当てられていれば、例外 EvalError を投げてよい。
parseInt 関数は、 radix の指定にしたがい引数 string の内容を解釈して判定される整数値を生成する。文字列内の先行する空白文字は無視される。 radix が undefined または 0 ならば、それは 10 と仮定される。その数字が文字 0x
または 0X
で始まる場合は radix は 16 と仮定される。任意の radix-16 数は文字 0x
または 0X
で始まってもよい。
parseInt 関数が呼出されると、次のステップが取られる:
if
R が 10 で、かつ Z が 20 桁以上であるならば、 20 桁目以降の各桁の数字は、実装の選択で数字 0 で置換してよい; そして R が 2, 4, 8, 10, 16, 32 以外ならば、 Result(16) は、 R 進数表記にて Z で表される数学的整数値の実装依存の近似値であってよい。)NOTE parseInt は、文字列の先行する成分だけを整数値として解釈してよい; それは整数表記の一部として解釈できない任意の文字を無視し、そのような文字が無視されたことのいかなる徴候も与えられない。
radix が 0 または undefined であり、 string の数が数字 0 で始まり x も X も続かないとき、実装は、自由な判断で、数を 8 進数とも 10 進数とも解釈してよい。実装はこの場合、 10 進数として数を解釈することが推奨される。
parseFloat 関数は、 10 進数リテラルとして引数 string の内容解析器に書き取られる数値を生成する。
parseFloat 関数が呼出されると、次のステップが取られる:
NOTE parseFloat 文字列の先行する成分だけを数値として解釈してよい;
それは 10 進数表記の一部として解釈できない任意の文字を無視し、そのような文字が無視されたことのいかなる徴候も与えられない。
引数に ToNumber を適用し、結果が NaN であれば true, そうでなければ false を返す。
引数に ToNumber を適用し、結果が NaN, +∞, -∞ であれば false, そうでなければ true を返す。
Uniform Resource Identifiers, あるいは URI は、リソース (つまり、ウェブページやファイル)を識別する文字列であり、インターネット上でそれらにアクセスするプロトコル (すなわち HTTP や FTP) を輸送する。 ECMAScript 言語自身は、セクション 15.1.3.1, 15.1.3.2, 15.1.3.3, 15.1.3.4 に URI を符号化また復号化する関数を述べるのみで、他の URI を使用するサポートを提供しない。
NOTE ECMAScript 実装の多くは、ウェブページを操作する追加の関数とメソッドを提供する; これらの関数はこの標準の適用範囲上にある。 URI は成分分離子によって分割された成分の並びで構成される。一般的な形式は:
Scheme : First / Second ; Third ? Fourth
イタリック体の名前は成分をあらわし、 ":", "/", ";", "?" は分離子として使用される予約文字をあらわす。 encodeURI 関数と decodeURI 関数は、完璧な URI の動作を意図される; URI 中の任意の予約文字は、特殊な意味を持ち、従って符号化されないことが意図されると考える。 encodeURIComponent 関数と decodeURIComponent 関数は、 URI の個別の成分としての動作を意図される; 任意の予約文字はテキストをあらわし、したがって成分が完璧な URI の一部であるとき、予約文字として解析されないように符号化されなければならない、と考える。
次の字句文法は、符号化された URI の形式を規定する。
URI 中に含まれる文字が、上に挙げられていないとき、また予約文字に与えられる特殊な意味を持つと意図されないとき、その文字は符号化されなければならない。文字はまず UTF-8 変換を用いてオクテットのシーケンスに変換される。サロゲートペア (surrogate pairs) はまず UCS-2 から UCS-4 符号化に変換される。 (範囲 [0, 127] のコードポイントについては、これは同じ値の単一のオクテットの結果である。) 結果のオクテットのシーケンスは、 "%xx" 形式のエスケープシーケンスであらわされる各オクテットの文字列に変換される。
符号化とエスケープの処理は、 2 個の文字列引数 string と unescapedSet をとる隠し関数 Encode によって記述される。この関数は解説上の目的でのみ定義される。
アンエスケープと復号化の処理は、 2 個の文字列引数 string と reservedSet をとる隠し関数 Decode によって記述される。この関数は解説上の目的でのみ定義される。
NOTE Uniform Resource Identifiers の構文は、 RFC2396 で与えられる。
NOTE UTF-8 の公式な説明と実装は、 Unicode Standard, Version 2.0, Appendix A で与えられる。
UTF-8 では、 1 個から 6 個のオクテットのシーケンスで符号化される。ある一つの "シーケンス" のオクテットだけが上位ビットを 0 に設定し、残り 7 ビットは文字値の符号化に使用されている。 n 個のオクテットのシーケンスにおいて、 n>1 として、最初のオクテットは n 個の上位ビットを 1 に設定, 続くビットを 0 に設定する。オクテットの残りのビットは、符号化される文字の値からのビットで構成される。続くオクテットの全ては上位ビットを 1 に設定し、続くビットを 0 に設定、それぞれ残り 6 ビット 符号化された文字からのビットで構成される。 ECMAScript 文字の可能な UTF-8 符号は:
コードポイント値 | 表現 | 1st Octet | 2nd Octet | 3rd Octet | 4th Octet |
0x0000 - 0x007F | 00000000 0zzzzzzz | 0zzzzzzz | |||
0x0080 - 0x07FF | 00000yyy yyzzzzzz | 110yyyyy | 10zzzzzz | ||
0x0800 - 0xD7FF | xxxxyyyy yyzzzzzz | 1110xxxx | 10yyyyyy | 10zzzzzz | |
0xD800 - 0xDBFF (0xDC00 - 0xDFFF が後に続く) |
110110vv vvwwwwxx (110111yy yyzzzzzz が後に続く) |
11110uuu | 10uuwwww | 10xxyyyy | 10zzzzzz |
0xD800 - 0xDBFF (0xDC00 - 0xDFFF が後に続かない) |
例外 URIError が発生 | ||||
0xDC00 - 0xDFFF | 例外 URIError 発生 | ||||
0xE000 - 0xFFFF | xxxxyyyy yyzzzzzz | 1110xxxx | 10yyyyyy | 10zzzzzz |
Where
uuuuu = vvvv + 1
to account for
the addition of 0x10000 as in
3.7, Surrogates Unicode Standard version 2.0.
コードポイント値 0xD800-0xDFFF の範囲がサロゲートペアの符号化に使用される; 上記の変換は UCS-2 のサロゲートペアを UCS-4 表現に結合し、結果の 21 ビット値を UTF-8 に符号化する。復号化は、サロゲートペアを再構築する。
decodeURI 関数は新しいバージョンの URI を算出する。その中で、各エスケープシーケンスと encodeURI 関数により取り入れられる種類の UTF-8 符号は、そのあらわす文字に置換される。 encodeURI により取り入れられることのないエスケープシーケンスは置換されない。
decodeURI 関数が 1 個の引数 encodedURI で呼出されるとき、次のステップが取られる:
NOTE 文字 "#" は、 URI 予約文字でなくてもエスケープシーケンスから復号されない。
decodeURIComponent 関数は新しいバージョンの URI を算出する。その中で、各エスケープシーケンスと encodeURIComponent 関数により取り入れられる種類の UTF-8 符号は、そのあらわす文字に置換される。
decodeURIComponent 関数が 1 個の引数 encodedURIComponent で呼出されるとき、次のステップが取られる:
encodeURI 関数は、新しいバージョンの URI を算出する。その中で一定の文字の各インスタンスは、文字の UTF-8 符号をあらわす 1,2,3 個のエスケープシーケンスによって置換される。
encodeURI 関数が 1 個の引数 uri で呼出されるとき、次のステップが取られる:
NOTE 文字 "#" は、予約文字でも非エスケープ文字でもないが、エスケープシーケンスに符号化されない。
encodeURIComponent 関数は、 URI の新しいバージョンを算出する。その中で、一定の文字のインスタンスは、文字の UTF-8 符号化をあらわす 1,2,3 個のエスケープシーケンスに置換される。
encodeURIComponent が 1 個の引数 uriComponent で呼出されるとき、次のステップが取られる:
セクション 15.2.1 及び 15.2.2 参照。
セクション 15.3.1 及び 15.3.2 参照。
セクション 15.4.1 及び 15.4.2 参照。
セクション 15.5.1 及び 15.5.2 参照。
セクション 15.6.1 及び 15.6.2 参照。
セクション 15.7.1 及び 15.7.2 参照。
セクション 15.9.2 参照。
セクション 15.10.3 及び 15.10.4 参照。
セクション 15.11.1 及び 15.11.2 参照。
セクション 15.11.6.1 参照。
セクション 15.11.6.2 参照。
セクション 15.11.6.3 参照。
セクション 15.11.6.4 参照。
セクション 15.11.6.5 参照。
セクション 15.11.6.6 参照。
セクション 15.8 参照。