訳の正確性を保証するものではありませんので必要に応じて原文であるEcma InternationalのECMA-262にある ECMA-262.pdf ( ECMA-262 5.1 Edition )を参照下さい。
訳:2012年04月 webzoit.net
この文書の目的においては、次の用語と定義が適用されます。
この仕様の第8項内で定義したようなデータ値のセット
第8項内で定義したようなUndefined型、Null型, Boolean型, Number型, String型の1つであるメンバ [注釈] プリミティブな値とは、言語実装の最も低いレベルで表現されるまさに基準・原点です。
Objectという型のメンバ [注釈] オブジェクトとは、プロパティの集合と1つのプロトタイプオブジェクトを持ちます。 プロトタイプは、null値になる場合があります。 (注:ちなみにここで言うプロトタイプオブジェクトとは、標準組み込みプロトタイプオブジェクトであり、obj.prototype といったGlobalオブジェクト以外の各オブジェクトが持つ prototype プロパティの事ではない、つまり、 prototype プロパティを持たないJSONやMathも「プロトタイプがnull値」であるオブジェクトという意味。)
オブジェクトを生成、初期化する関数オブジェクト [注釈] コンストラクタのprototypeプロパティの値は、継承の実装と共有したプロパティに利用されるプロトタイプオブジェクトです。
他のオブジェクトに共有したプロパティを提供するオブジェクト [注釈] コンストラクタが、任意のオブジェクトを生成する場合には、そのオブジェクトは、プロパティ参照を解決する目的においてコンストラクタの"prototype"プロパティを暗に参照します。 そのコンストラクタの"prototype"プロパティは、(注:任意のコンストラクタ名という意味であってconstructorプロパティのことではない)[ constructor.prototype ]というプログラム上の式によって参照されることが可能で、そのプロトタイプを共有している全てのオブジェクトによって継承を通して共有されます。 あるいは、任意の新たなオブジェクトは、[ Object.create ]という組み込み関数を使用することによって明示的に指定したプロトタイプを伴って生成される場合があります。
ホスト環境ではなく、この仕様によって完全に定義されるセマンティックを持つECMAScriptの実装にあるオブジェクト [注釈] 標準規格のネイティブオブジェクトはこの仕様の中で定義されます。 一部のネイティブオブジェクトは、組み込まれ、その他は、ECMAScriptプログラムの実行過程で構築される場合があります。
ECMAScriptプログラムの実行開始時点で現れるECMAScriptの実装によって提供されたホスト環境に依存しないオブジェクト [注釈] 標準組み込みオブジェクトはこの仕様内で定義され、ECMAScriptの実装については、ここで記載したり、他で定義したりする場合があります。 各組み込みオブジェクトは、ネイティブオブジェクトです。 組み込みコンストラクタとは、組み込みオブジェクトのことであり、コンストラクタのことでもあります。
完全なECMAScriptの実行環境をホスト環境によって提供したオブジェクト [注釈] ネイティブでないなんらかのオブジェクトは、ホストオブジェクトです。
変数が、値と関連付けられていない時に使用したプリミティブ値
唯一の値がUndefined(未定義)値である型
何らかのオブジェクトの意図的な欠如を表すプリミティブ値
唯一の値がnull値である型
Boolean型のメンバ [注釈] Boolean値にはtrueとfalseの2つしかありません。
プリミティブ値 true/false で構成される型
標準組み込みBooleanコンストラクタのインスタンスであるオブジェクト型のメンバ [注釈] 引数としてBoolean値を提供することによって new 式の中でBooleanコンストラクタを使って生成したBooleanオブジェクトです。 結果となるオブジェクトは、値がBoolean値である内部プロパティを持ちます。 Booleanオブジェクトは、Boolean値に強制変換することが可能です。
ゼロ以上の16ビット符号なし整数の有限の序数並びであるプリミティブ値 [注釈] String値は、String型のメンバです。 通常、その並び(シーケンス)にある各整数値は、UTF-16テキストの任意の単一の16ビットユニットを表わします。 しかしながら、ECMAScriptは、16ビット符号なし整数にしなければならない場合を除き、その値におけるいかなる制限も要求もなされません。
利用可能なString値全てのセット
標準組み込みStringコンストラクタのインスタンスであるObject型のメンバ [注釈] 任意のStringオブジェクトは、引数としてString値を提供することによって new 式の中でStringコンストラクタを使って生成されます。 結果となるオブジェクトは、値がString値である内部プロパティを持ちます。 Stringオブジェクトは、関数としてStringコンストラクタを呼ぶ(15.5.1)ことによってString値に強制変換することが可能です。
倍精度64ビットバイナリ形式[ IEEE 754 ]の値と一致するプリミティブ値 [注釈] Number値は、Number型のメンバであり、数値における直接表現です。 [注記] [ IEEE 754 ] / IEEE標準規格 754 『浮動小数点数演算』
特殊な[NaN / Not-a-Number]、正の無限大、負の無限大を含む全ての利用可能なNumber値のセット
標準組み込みNumberコンストラクタのインスタンスであるObject型のメンバ [注釈] Numberオブジェクトは、引数としてNumber値を提供することによって new 式の中でNumberコンストラクタを使って生成されます。 結果となるオブジェクトは、値がNumber値である内部プロパティを持ちます。 Numberオブジェクトは、関数としてNumberコンストラクタを呼ぶ(15.7.1)ことによってNumber値に強制変換することが可能です。
正の無限大のNumber値である数値
[IEEE 754]で定める[NaN / Not-a-Number]値である数値 [ IEEE 754 ] / IEEE標準規格 754 『浮動小数点数演算』
標準組み込みFunctionコンストラクタのインスタンスであり、サブルーチンとして実行される場合があるObject型のメンバ [注釈] その名前付きプロパティについて追記すると任意の関数は、実行可能なコードと呼び出された場合にどのような挙動を取るかを決める状態を含みます。 関数のコードは、ECMAScriptで書かれたり、(他のコードで書かれECMAScriptでは)書かれなかったりします(、つまり、関数のコードは、必ずしもECMAScriptで書かれるとは限りません)。
関数である組み込みオブジェクト [注釈] parseInt と Math.exp を含む組み込み関数の例など。 実装は、この仕様に記載されていない実装依存(独自拡張)の組み込み関数を提供する場合があります。
オブジェクトの一部となる名称と値の関連付け [注釈] プロパティの形式に応じて値は、データ値(任意のプリミティブ値、任意のオブジェクト、任意の関数オブジェクト等)として直接、またはアクセサ関数のペアによって間接的に表現される場合があります。
プロパティの値である関数 [注釈] 関数が、オブジェクトのメソッドとして呼ばれる場合、そのオブジェクトは、 this 値として関数に渡されます。
組み込み関数であるメソッド [注釈] 標準組み込みメソッドは、この仕様内で定義され、ECMAScriptの実装が、他の付加的な組み込みメソッドを指定したり、提供したりする場合もあります。
あるプロパティの任意の特性を定義する内部値
そのオブジェクトで直(じか)に含まれるプロパティ
独自のプロパティではなく、オブジェクトのプロトタイプの(それ自身または継承した何らかの)オブジェクトのプロパティ