気の向くままに辿るIT/ICT/IoT
ECMAScript/JavaScript

ECMAScript / Standard ECMA-262 Edition 5.1 訳

ホーム前へ次へ
ECMAScript / JavaScript とは

ECMAScript / Standard ECMA-262 Edition 5.1 訳

ECMAScript / Standard ECMA-262 Edition 5.1 訳

 2011年6月に発行されたECMAScript 標準規格 ECMA-262 第5版の改訂版、『 ECMA-262 第5.1版』訳:webzoit.net(2012年4月)。

 訳の正確性は保証の限りではありませんので必要に応じて原文をご参照ください。

ECMA-262 Edition 5.1 索引・目次

ECMA-262 Edition 5.1 著作権情報

原文

標準化団体:Ecma International

Index of Ecma Standards内リンクECMA-262 Edition 5.1 (June 2011)にあるpdfファイル[ ECMA-262.pdf ]。

仕様書読解のコツ

 この仕様は、仕様書を記述する為の合理化が極めて洗練されており、その結果、実は、仕様書を書く為の略記としての式などの記述方法と実際にコーディングに利用可能なメソッド含むプロパティが混在しており、所々でその説明はありますが、ぱっと見では、全てが実際に利用可能なプロパティであったり、新たに定義された環境や用語のように思えてしまうような部分が多々ある為、留意すべき点をざっくり書き出してみます。

 尚、以前のECMA仕様(第1/2/3版及び第5版)を読んだことがないのでなんですが、少なくとも、このECMA-262 5.1版の仕様は、以前の版、おそらくそれ以前に元のJavaScript仕様(Netscape社/Mozilla)、または、JScript仕様(Microsoft社)だと思いますが、何れにしてもJavaScriptの前提知識がないと、この仕様書を読んだだけでは理解できないだろうと思われる部分が多々あります。

 また、機能を詳細に説明してあるような仕様部分においては、ソースコードから仕様書を起こした感のある記述となっており、任意の変数名が唐突に現れることがある為、その前提でコードを想定して読解しない限り、理解できない(、もしくは、それでも理解に苦しむ)部分も多々あるかと思います。

言語の値型と仕様説明上の値型

値の型
ECMAScript言語の型仕様説明上の型
Undefined
Null
Boolean
String
Number
Object
Reference
List
Completion
Property Descriptor
Property Identifier
Lexical Environment
Environment Record

言語のオブジェクト型と仕様説明上のオブジェクト型

 NativeErrorオブジェクトとは、"NativeError"という名称のオブジェクトが存在するわけではなく、ErrorオブジェクトのEvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIErrorの計6個のエラーオブジェクトで仕様内容が重複することに伴う単なる代用表記です。

言語のメソッドと仕様説明上のメソッド

 また、関数・メソッドにおいてECMAScript言語の関数・メソッドは、先頭が小文字、または全て小文字、その型とすることを示す仕様説明上の関数「っぽい」式は、先頭が大文字となっています。

実際のメソッド仕様説明上の説明式
toString ( )ToString ( )
-ToObject ( )
-Type ( )
eval ( )Eval ( )
...etc.

仕様説明上のプロパティ

 二重角ブラケット [[ ]] で括られたものは、処理系・実装への仕様または、仕様説明上の概念的、内部的なプロパティであり、プログラマがコード上からアクセスできるプロパティではありません。

仕様説明上の概念/コードからのアクセス不可
[[Prototype]]
[[Class]]
[[Extensible]]
[[Get]]
[[GetOwnProperty]]
[[GetProperty]]
[[Put]]
[[CanPut]]
[[HasProperty]]
[[Delete]]
[[DefaultValue]]
[[DefineOwnProperty]]
...etc.

 但し、一部、似通った名称の実在するプロパティ、または、プログラマがアクセス可能なプロパティがある場合もありますが、その場合、(NaN,POSITIVE_INFINITY,NEGATIVE_INFINITY,MAX_VALUE,MIN_VALUEといった値プロパティを除き、)プロパティ名が大文字で始まることはありません。

仕様説明上の記号としての連語・フレーズ

 スペースを入れずに英単語が連なった連語の文字列は、誤記ではなく、意味はそのまま仕様説明上の「代替記号」となっています。

仕様説明上の代替記号意味
RegularExpressionLiteral正規表現リテラル
DivPunctuator区分句読文字
ReservedWord予約語
IdentifierName識別子名
UnicodeEscapeSequenceUnicodeのエスケープシーケンス
// SingleLineCommentCharsopt末尾にoptがつくケース

// (スラッシュ2つ)に続けてオプションとしての(あってもなくてもよい)単一行コメント文字列
...etc.

 また、これら代替記号と共に1つ~3つのコロンを伴って左辺式、右辺式の形で記述されます(が、もちろんこれらのコロンも説明上のものです)。

 ちなみにプロパティのキーと値のセットを表すコロン

var obj { "value" : "A" }

は、プログラムコードとして有効なものです。

...etc.

ホーム前へ次へ