ECMA-262 5.1 読解時の留意点と原文リソース
著作権情報
はじめに 1 スコープ 2 準拠・適合・一致 3 引用規格・引用文書 4 概要 5 表記上の規則 6 ソーステキスト 7 字句(トークン)表記 8 型 9 型変換とテスト 10 実行可能なコードと実行コンテキスト 11 式 12 ステートメント/文 13 関数定義 14 プログラム 15 標準組み込みECMAScriptオブジェクト 16 エラー 付録 (参考情報) 参考文献
はじめに 1 スコープ 2 準拠・適合・一致 3 引用規格・引用文書
4 概要
4.1 Webスクリプティング 4.2 言語概要 4.2.1 オブジェクト 4.2.2 ECMAScriptの厳密なVariant型 4.3 用語と定義
5 表記上の規則
5.1 構文と語彙文法 5.1.1 文脈に縛られない文法 5.1.2 語彙とRegExpの文法 5.1.3 数値文字列の文法 5.1.4 構文文法 5.1.5 JSONの文法 5.1.6 文法表記 5.2 アルゴリズムの表記法
7 字句(トークン)表記
7.1 Unicode 書式制御文字 7.2 ホワイトスペース 7.3 行終端 7.4 コメント 7.5 トークン(字句) 7.6 識別子の名前と識別子 7.6.1 予約語 7.7 句読文字 7.8 リテラル文字 7.8.1 Nullリテラル 7.8.2 Booleanリテラル 7.8.3 Numericリテラル 7.8.4 Stringリテラル 7.8.5 Regular Expressionリテラル 7.9 自動セミコロン挿入 7.9.1 自動セミコロン挿入のルール 7.9.2 自動セミコロン挿入の例
8 型
8.1 Undefined 型 8.2 Null 型 8.3 Boolean 型 8.4 String 型 8.5 Number 型 8.6 Object 型 8.6.1 プロパティ属性 8.6.2 オブジェクト内部プロパティとオブジェクト内部メソッド 8.7 リファレンス仕様の種類 8.7.1 GetValue (V) 8.7.2 PutValue (V, W) 8.8 リスト仕様の種類 8.9 補完仕様の種類 8.10 プロパティ記述子とプロパティ記述子の種類 8.10.1 IsAccessorDescriptor ( Desc ) 8.10.2 IsDataDescriptor ( Desc ) 8.10.3 IsGenericDescriptor ( Desc ) 8.10.4 FromPropertyDescriptor ( Desc ) 8.10.5 ToPropertyDescriptor ( Obj ) 8.11 レキシカル環境と環境レコードの種類 8.12 オブジェクト内部メソッドにおけるアルゴリズム 8.12.1 [[GetOwnProperty]] (P) 8.12.2 [[GetProperty]] (P) 8.12.3 [[Get]] (P) 8.12.4 [[CanPut]] (P) 8.12.5 [[Put]] ( P, V, Throw ) 8.12.6 [[HasProperty]] (P) 8.12.7 [[Delete]] (P, Throw) 8.12.8 [[DefaultValue]] (hint) 8.12.9 [[DefineOwnProperty]] (P, Desc, Throw)
9 型変換とテスト
9.1 ToPrimitive 9.2 ToBoolean 9.3 ToNumber 9.3.1 ToNumberをString型に適用 9.4 ToInteger 9.5 ToInt32: (符号付き 32 ビット整数) 9.6 ToUint32: (符号なし 32 ビット整数) 9.7 ToUint16: (符号なし 16 ビット整数) 9.8 ToString 9.8.1 ToStringをNumber型に適用 9.9 ToObject 9.10 CheckObjectCoercible 9.11 IsCallable 9.12 SameValueアルゴリズム
10 実行可能なコードと実行コンテキスト
10.1 実行コードの種類 10.1.1 厳密モード(Strict Mode)のコード 10.2 レキシカル(語彙的な)環境 10.2.1 環境レコード 10.2.2 レキシカル環境演算子 10.2.3 グローバル環境 10.3 実行コンテキスト 10.3.1 識別子解決 10.4 実行コンテキストの確立 10.4.1 Globalコードの入力 10.4.2 Evalコードの入力 10.4.3 Functionコードの入力 10.5 インスタンス化に関する宣言 10.6 引数オブジェクト
11 式
11.1 主な式 11.1.1 this キーワード 11.1.2 識別子参照 11.1.3 リテラル文字参照 11.1.4 配列初期化子(配列イニシャライザー) 11.1.5 オブジェクト初期化子(オブジェクトイニシャライザー) 11.1.6 グループ化演算子 11.2 左辺の式 11.2.1 プロパティアクセサ 11.2.2 new 演算子 11.2.3 関数呼び出し(ファンクションコール) 11.2.4 引数リスト 11.2.5 関数の式 11.3 後置(接尾辞)式 11.3.1 後置増分演算子(i++) 11.3.2 後置減分演算子(i--) 11.4 単項演算子 11.4.1 delete 演算子 11.4.2 void 演算子 11.4.3 typeof 演算子 11.4.4 前置増分演算子(++i) 11.4.5 前置減分演算子(--i) 11.4.6 単項 + 演算子 11.4.7 単項 - 演算子 11.4.8 ビット否定演算子 ( ~ ) 11.4.9 論理否定演算子 ( ! ) 11.5 基数詞演算子(Multiplicative Operators) 11.5.1 * 演算子に適用 11.5.2 / 演算子に適用 11.5.3 % 演算子に適用 11.6 加法演算子 11.6.1 加算演算子 ( + ) 11.6.2 減算演算子 ( - ) 11.6.3 加法演算子を数字に適用 11.7 ビットシフト演算子 11.7.1 左シフト演算子 ( << ) 11.7.2 符号付き右シフト演算子 ( >> ) 11.7.3 符号なし右シフト演算子 ( >>> ) 11.8 関係演算子 11.8.1 Less-than 演算子 ( < ) 11.8.2 Greater-than 演算子 ( > ) 11.8.3 Less-than-or-equal 演算子 ( <= ) 11.8.4 Greater-than-or-equal 演算子 ( >= ) 11.8.5 Abstract (抽象)関係比較アルゴリズム 11.8.6 instanceof 演算子 11.8.7 in 演算子 11.9 等価演算子 11.9.1 等号演算子 ( == ) 11.9.2 不等号演算子 ( != ) 11.9.3 抽象等価比較アルゴリズム 11.9.4 厳密な等号演算子 ( === ) 11.9.5 厳密な不等号演算子 ( !== ) 11.9.6 厳密な等価比較アルゴリズム 11.10 バイナリビット演算子 11.11 バイナリ論理演算子 11.12 条件演算子 ( ? : ) 11.13 代入演算子 11.13.1 単純な代入 ( = ) 11.13.2 複雑な代入 ( op= ) 11.14 カンマ演算子 ( , )
12 ステートメント/文
12.1 ブロック 12.2 変数ステートメント 12.2.1 Strictモードの制限 12.3 Empty(カラ文字)ステートメント 12.4 式ステートメント 12.5 if ステートメント 12.6 反復・繰り返しステートメント 12.6.1 do-while ステートメント 12.6.2 while ステートメント 12.6.3 for ステートメント 12.6.4 for-in ステートメント 12.7 continue ステートメント 12.8 break ステートメント 12.9 return ステートメント 12.10 with ステートメント 12.10.1 Strictモードの制限 12.11 switch ステートメント 12.12 ラベル付きステートメント 12.13 throw ステートメント 12.14 try ステートメント 12.14.1 Strictモードの制限 12.15 debugger ステートメント
13 関数定義
13.1 Strictモードの制限 13.2 Functionオブジェクトの生成 13.2.1 [[Call]] 13.2.2 [[Construct]] 13.2.3 [[ThrowTypeError]] Functionオブジェクト
14 プログラム 14.1 前置指定(指定プロローグ)とUse Strict指定
15 標準組み込みECMAScriptオブジェクト
15.1 Global オブジェクト 15.1.1 Global オブジェクトの値プロパティ 15.1.2 Global オブジェクトの関数プロパティ 15.1.3 URI 制御関数プロパティ 15.1.4 Global オブジェクトのコンストラクタプロパティ 15.1.5 Global オブジェクトのその他のプロパティ 15.2 Object オブジェクト 15.2.1 関数としてコールしたObjectコンストラクタ 15.2.2 Objectコンストラクタ 15.2.3 Objectコンストラクタのプロパティ 15.2.4 Objectプロトタイプオブジェクトのプロパティ 15.2.5 Objectインスタンスのプロパティ 15.3 Function オブジェクト 15.3.1 関数としてコールしたFunctionコンストラクタ 15.3.2 Functionコンストラクタ 15.3.3 Functionコンストラクタのプロパティ 15.3.4 Functionプロトタイプオブジェクトのプロパティ 15.3.5 Functionインスタンスのプロパティ 15.4 Array オブジェクト 15.4.1 関数としてコールしたArrayコンストラクタ 15.4.2 Arrayコンストラクタ 15.4.3 Arrayコンストラクタのプロパティ 15.4.4 Arrayプロトタイプオブジェクトのプロパティ 15.4.5 Arrayインスタンスのプロパティ 15.5 String オブジェクト 15.5.1 関数としてコールしたStringコンストラクタ 15.5.2 Stringコンストラクタ 15.5.3 Stringコンストラクタのプロパティ 15.5.4 Stringプロトタイプオブジェクトのプロパティ 15.5.5 Stringインスタンスのプロパティ 15.6 Boolean オブジェクト 15.6.1 関数としてコールしたBooleanコンストラクタ 15.6.2 Booleanコンストラクタ 15.6.3 Booleanコンストラクタのプロパティ 15.6.4 Booleanプロトタイプオブジェクトのプロパティ 15.6.5 Booleanインスタンスのプロパティ 15.7 Number オブジェクト 15.7.1 関数としてコールしたNumberコンストラクタ 15.7.2 Numberコンストラクタ 15.7.3 Numberコンストラクタのプロパティ 15.7.4 Numberプロトタイプオブジェクトのプロパティ 15.7.5 Numberインスタンスのプロパティ 15.8 Math オブジェクト 15.8.1 Mathオブジェクトの値プロパティ 15.8.2 Mathオブジェクトの関数プロパティ 15.9 Date オブジェクト 15.9.1 Dateオブジェクトの概要と抽象演算子の定義 15.9.2 関数としてコールしたDateコンストラクタ 15.9.3 Dateコンストラクタ 15.9.4 Dateコンストラクタのプロパティ 15.9.5 Dateプロトタイプオブジェクトのプロパティ 15.9.6 Dateインスタンスのプロパティ 15.10 RegExp (Regular Expression/正規表現) オブジェクト 15.10.1 パターン 15.10.2 パターンセマンティクス(意味論) 15.10.3 関数としてコールしたRegExpコンストラクタ 15.10.4 RegExpコンストラクタ 15.10.5 RegExpコンストラクタのプロパティ 15.10.6 RegExpプロトタイプオブジェクトのプロパティ 15.10.7 RegExpインスタンスのプロパティ 15.11 Error オブジェクト 15.11.1 関数としてコールしたErrorコンストラクタ 15.11.2 Errorコンストラクタ 15.11.3 Errorコンストラクタのプロパティ 15.11.4 Errorプロトタイプオブジェクトのプロパティ 15.11.5 Errorインスタンスのプロパティ 15.11.6 この標準規格で使用されるネイティブエラーの種類 15.11.7 NativeErrorオブジェクト構造 15.12 JSON オブジェクト 15.12.1 JSONの文法 15.12.2 parse ( text [ , reviver ] ) 15.12.3 stringify ( value [ , replacer [ , space ] ] )
付録 A (参考情報) 文法の要約 付録 B (参考情報) 互換性 付録 C (参考情報) ECMAScriptのStrictモード 付録 D (参考情報) 利用可能な3つのエディション(ECMA-262/ECMA-327/ECMA-357)における互換性への影響について5版での訂正と明確化 付録 E (参考情報) 5版(5 Edition)での追加点と変更点/3つのエディションとの非互換性を紹介 付録 F (参考情報) 5.1版(5.1 Edition)で技術的に重要な修正と明確化
参考文献