このページはECMAScript® 2020 Language SpecificationをJavaScriptの学習目的で私的に日本語訳したものであり、直訳と意訳および推測が混在しています。そのため内容については正確でない可能性があります。正確な情報を知りたい場合は、原文をご覧ください。また一部訳者によるコメントが含まれていることがあります。※このサイトの内容で損害や不利益を受けたとしても当方は一切の責任を負いません。
index
X
- 前書き(Introduction)
- 1 適用範囲(Scope)
- 2 実装に関する準拠基準(Conformance)
- 3 規範的な参考文献(Normative References)
- 4 概要(Overview)
- 5 表記規則(Notational Conventions)
- 6 ECMAScriptのデータ型と値(ECMAScript Data Types and Values)
- 7 抽象操作(Abstract Operations)
- 8 実行可能コードと実行コンテキスト(Executable Code and Execution Contexts)
- 9 通常およびエキゾチックなオブジェクトの動作(Ordinary and Exotic Objects Behaviours)
- 9.1 通常のオブジェクトの内部メソッドと内部スロット(Ordinary Object Internal Methods and Internal Slots)
- 9.2 ECMAScript関数オブジェクト(ECMAScript Function Objects)
- 9.3 組み込み関数オブジェクト(Built-in Function Objects)
- 9.4 組み込みのエキゾチックオブジェクトの内部メソッドとスロット(Built-in Exotic Object Internal Methods and Slots)
- 9.5 プロキシオブジェクトの内部メソッドと内部スロット(Proxy Object Internal Methods and Internal Slots)
- 10 ECMAScript言語:ソースコード(ECMAScript Language: Source Code)
- 11 ECMAScript言語:レキシカル文法(ECMAScript Language: Lexical Grammar)
- 11.1 Unicodeフォーマット制御文字(Unicode Format-Control Characters)
- 11.2 ホワイトスペース(White Space)
- 11.3 ラインターミネーター(Line Terminators)
- 11.4 コメント(Comments)
- 11.5 トークン(Tokens)
- 11.6 名前とキーワード(Names and Keywords)
- 11.7 句読点(Punctuators)
- 11.8 リテラル(Literals)
- 11.9 セミコロンの自動挿入(Automatic Semicolon Insertion)
- 11.10 自動セミコロン挿入の興味深いケース(Interesting Cases of Automatic Semicolon Insertion)
- 11.11 セミコロン自動挿入の事例と”[no LineTerminator here]”(Cases of Automatic Semicolon Insertion and “[no LineTerminator here]”)
- 12 ECMAScript言語:式(ECMAScript Language: Expressions)
- 12.1 識別子(Identifiers)
- 12.2 一次式(Primary Expression)
- 12.3 左辺式(Left-Hand-Side Expressions)
- 12.4 更新式(Update Expressions)
- 12.5 単項演算子(Unary Operators)
- 12.6 べき乗演算子(Exponentiation Operator)
- 12.7 乗算演算子(Multiplicative Operators)
- 12.8 加算演算子(Additive Operators)
- 12.9 ビットシフト演算子(Bitwise Shift Operators)
- 12.10 関係演算子(Relational Operators)
- 12.11 等値演算子(Equality Operators)
- 12.12 バイナリビット演算子(Binary Bitwise Operators)
- 12.13 バイナリ論理演算子(Binary Logical Operators)
- 12.14 三項(条件)演算子(Conditional Operator) ( ? : )
- 12.15 割り当て演算子(Assignment Operators)
- 12.16 カンマ演算子(Comma Operator) ( , )
- 13 ECMAScript言語:ステートメントと宣言(ECMAScript Language: Statements and Declarations)
- 13.1 ステートメントセマンティクス(Statement Semantics)
- 13.2 ブロック(Block)
- 13.3 宣言と変数ステートメント(Declarations and the Variable Statement)
- 13.4 空文-空のステートメント-(Empty Statement)
- 13.5 式ステートメント(Expression Statement)
- 13.6 ifステートメント(The if Statement)
- 13.7 反復ステートメント(Iteration Statements)
- 13.8 continueステートメント(The continue Statement)
- 13.9 breakステートメント(The break Statement)
- 13.10 returnステートメント(The return Statement)
- 13.11 withステートメント(The with Statement)
- 13.12 switchステートメント(The switch Statement)
- 13.13 ラベル付きステートメント(Labelled Statements)
- 13.14 throwステートメント(The throw Statement)
- 13.15 tryステートメント(The try Statement)
- 13.16 debuggerステートメント(The debugger Statement)
- 14 ECMAScript言語:関数とクラス(ECMAScript Language: Functions and Classes)
- 14.1 関数定義(Function Definitions)
- 14.2 アロー関数定義(Arrow Function Definitions)
- 14.3 メソッド定義(Method Definitions)
- 14.4 ジェネレーター関数定義(Generator Function Definitions)
- 14.5 非同期ジェネレーター関数定義(Async Generator Function Definitions)
- 14.6 クラス定義(Class Definitions)
- 14.7 非同期関数定義(Async Function Definitions)
- 14.8 非同期アロー関数の定義(Async Arrow Function Definitions)
- 14.9 末尾呼び出し(Tail Position Calls)
- 15 ECMAScript言語:スクリプトとモジュール(ECMAScript Language: Scripts and Modules)
- 16 エラー処理と言語拡張(Error Handling and Language Extensions)
- 17 ECMAScript標準組み込みオブジェクト(ECMAScript Standard Built-in Objects)
- 18 グローバルオブジェクト(The Global Object)
- 19 主要なオブジェクト(Fundamental Objects)
- 20 数値と番号と日付(Numbers and Dates)
- 21 テキスト処理(Text Processing)
- 22 インデックスコレクション(Indexed Collections)
- 23 キーコレクション(Keyed Collections)
- 24 構造化データ(Structured Data)
- 25 コントロール抽象化オブジェクト(Control Abstraction Objects)
- 25.1 反復(Iteration)
- 25.2 GeneratorFunctionオブジェクト(GeneratorFunction Objects)
- 25.3 AsyncGeneratorFunctionオブジェクト(AsyncGeneratorFunction Objects)
- 25.4 Generatorオブジェクト(Generator Objects)
- 25.5 AsyncGeneratorオブジェクト(AsyncGenerator Objects)
- 25.6 Promiseオブジェクト(Promise Objects)
- 25.7 AsyncFunctionオブジェクト(AsyncFunction Objects)
- 26 リフレクション(Reflection)
- 27 メモリモデル(Memory Model)
- 27.1 メモリモデルの基礎(Memory Model Fundamentals)
- 27.2 エージェントイベントレコード(Agent Events Records)
- 27.3 選択値レコード(Chosen Value Records)
- 27.4 実行候補(Candidate Executions)
- 27.5 メモリモデルの抽象演算(Abstract Operations for the Memory Model)
- 27.6 実行候補のリレーション(Relations of Candidate Executions)
- 27.7 有効な実行のプロパティ(Properties of Valid Executions)
- 27.8 競合(Races)
- 27.9 データ競合(Data Races)
- 27.10 データ競合の自由(Data Race Freedom)
- 27.11 共有メモリのガイドライン(Shared Memory Guidelines)
- A 文法の要約(Grammar Summary)
- B Webブラウザ用の追加ECMAScript機能(Additional ECMAScript Features for Web Browsers)
- C ECMAScriptのStrictモード(The Strict Mode of ECMAScript)
- D 互換性に影響を与える可能性のあるECMAScript2015の修正と明確化(Corrections and Clarifications in ECMAScript 2015 with Possible Compatibility Impact)
- E 以前の版と互換性のない追加と変更(Additions and Changes That Introduce Incompatibilities with Prior Editions)
- F 奥付け(Colophon)
- G 参考文献(Bibliography)
- H 著作権およびソフトウェアライセンス(Copyright & Software License)
表index
- 表1: 既知シンボル
- 表2: 数値型演算
- 表3: データプロパティの属性
- 表4: アクセサープロパティの属性
- 表5: 属性値のデフォルト
- 表6: 重要な内部メソッド
- 表7: 関数オブジェクトの重要な追加内部メソッド
- 表8: 既知組み込みオブジェクト
- 表9: 完了レコードのフィールド
- 表10: ToBoolean変換
- 表11: ToNumber変換
- 表12: BigInt変換
- 表13: ToString変換
- 表14: ToObject変換
- 表15: RequireObjectCoercibleの結果
- 表16: 環境レコードの抽象メソッド
- 表17: 関数環境レコードの追加フィールド
- 表18: 関数環境レコードの追加メソッド
- 表19: グローバル環境レコードの追加フィールド
- 表20: グローバル環境レコードの追加メソッド
- 表21: モジュール環境レコードの追加メソッド
- 表22: レルムレコードのフィールド
- 表23: すべての実行コンテキストの状態コンポーネント
- 表24: ECMAScriptコード実行コンテキストの追加の状態コンポーネント
- 表25: ジェネレーター実行コンテキストの追加の状態コンポーネント
- 表26: エージェントレコードのフィールド
- 表27: ECMAScript関数オブジェクトの内部スロット
- 表28: バインドされた関数エキゾチックオブジェクトの内部スロット
- 表29: モジュールネームスペースエキゾチックオブジェクトの内部スロット
- 表30: プロキシハンドラーメソッド
- 表31: フォーマット制御コードポイントの使用法
- 表32: 空白(ホワイトスペース)コードポイント
- 表33: ラインターミネータ(行末記号)コードポイント
- 表34: 文字列の単一文字のエスケープシーケンス
- 表35: typeof演算の結果
- 表36: For-Inイテレータインスタンスの内部スロット
- 表37: スクリプトレコードのフィールド
- 表38: モジュールレコードフィールド
- 表39: モジュールレコードの抽象メソッド
- 表40: Cyclicモジュールレコードの追加フィールド
- 表41: Cyclicモジュールレコードの追加抽象メソッド
- 表42: ソーステキストモジュールレコードの追加フィールド
- 表43: ImportEntryレコードのフィールド
- 表44: (参考)ImportEntryレコードのImport形式マッピング
- 表45: ExportEntryレコードのフィールド
- 表46: (参考)ExportEntryレコードのExport形式マッピング
- 表47: (参考):UTF-8エンコーディング
- 表48: 動的関数のSourceTextプレフィックス
- 表49: GlobalSymbolRegistryレコードフィールド
- 表50: 曜日の名前
- 表51: 年の月の名前
- 表52: 置換テキストシンボル置換
- 表53: Stringイテレータインスタンスの内部スロット
- 表54: ControlEscapeコードポイント値
- 表55: 非バイナリUnicodeプロパティエイリアスとその正規プロパティ名
- 表56: バイナリUnicodeプロパティエイリアスとその正規プロパティ名
- 表57: UnicodeプロパティGeneral_Categoryの値エイリアスと正規値
- 表58: UnicodeプロパティScriptおよびScript_Extensionsの値エイリアスと正規値
- 表59: RegExp文字列イテレータインスタンスの内部スロット
- 表60: Arrayイテレータインスタンスの内部スロット
- 表61: TypedArrayコンストラクター
- 表62: Mapイテレータインスタンスの内部スロット
- 表63: Setイテレータインスタンスの内部スロット
- 表64: JSON単一文字エスケープシーケンス
- 表65: Iterableインターフェイスに必要なプロパティ
- 表66: Iteratorインターフェイスに必要なプロパティ
- 表67: Iteratorインターフェイスのオプションプロパティ
- 表68: AsyncIterableインターフェイスに必要なプロパティ
- 表69: AsyncIteratorインターフェイスに必要なプロパティ
- 表70: AsyncIteratorインターフェイスのオプションプロパティ
- 表71: IteratorResultインターフェイスのプロパティ
- 表72: Async-from-Syncイテレータインスタンスの内部スロット
- 表73: Generatorインスタンスの内部スロット
- 表74: AsyncGeneratorインスタンスの内部スロット
- 表75: AsyncGeneratorRequestレコードのフィールド
- 表76: PromiseCapabilityレコードのフィールド
- 表77: PromiseReactionレコードのフィールド
- 表78: Promiseインスタンスの内部スロット
- 表79: ReadSharedMemoryイベントのフィールド
- 表80: WriteSharedMemoryイベントのフィールド
- 表81: ReadModifyWriteSharedMemoryイベントのフィールド
- 表82: エージェントイベントレコードのフィールド
- 表83: 選択値レコードのフィールド
- 表84: 実行候補レコードのフィールド
- 表85: 既知組み込みオブジェクト(追加)
- 表86: typeof演算の結果(追加)
訳者index
- prototypeプロパティ
- プロトタイプチェーン
- パースノード
- 同じパースノード
- Assert
- ゴールシンボル
- 操作の前に?が付加された場合
- 操作の前に!が付加された場合
- 数学的数値
- 整数
- 数学的整数
- abs()
- min()
- max()
- 剰余(modulo)
- floor()
- 静的セマンティクス
- 静的セマンティックルール
- 暗黙的Contains
- Type(x)
- empty
- 上位サロゲート
- 下位サロゲート
- サロゲートペア
- 数値
- BigInt型は実質的に符号なし右シフト演算子がない
- 整数インデックス
- 配列インデックス
- アクセサプロパティ
- データプロパティ
- プロパティ名
- 内部メソッド
- 内部スロット
- 二重角括弧[[]]
- [[Value]]属性
- [[Writable]]属性
- [[Enumerable]]属性
- [[Configurable]]属性
- [[Get]]属性
- [[Get]]メソッド
- [[Set]]属性
- [[Set]]メソッド
- 通常のオブジェクト
- エキゾチックなオブジェクト
- コンストラクター
- 関数オブジェクト
- List型
- «
- »
- Record型
- Set型
- Relation型
- 厳密な部分的順序
- 厳密な総順序
- Completion型
- 完了レコード
- 突然の完了
- Reference型
- スーパーリファレンス
- 基本値コンポーネント
- 参照名コンポーネント
- プロパティ記述子
- PropertyDescriptor型
- 抽象クロージャ
- 共有データブロック
- 配列のようなオブジェクト(array-like object)
- EnvironmentRecord
- 外部環境参照
- グローバル環境
- モジュール環境
- 関数環境
- 関数環境レコード
- 実行中の実行コンテキスト
- 実行コンテキストスタック
- コード評価ステータスコンポーネント
- 関数コンポーネント
- レルムコンポーネント
- ScriptOrModuleコンポーネント
- LexicalEnvironmentコンポーネント
- VariableEnvironmentコンポーネント
- アクティブ関数オブジェクト
- レルム
- レルムレコード
- 現在のレルムレコード
- LexicalEnvironment
- VariableEnvironment
- ジョブ
- エージェント
- 周囲のエージェント
- エージェントレコード
- 実行中のスレッド
- strict関数
- 非strict関数
- Arrayエキゾチックオブジェクト
- バウンド関数エキゾチックオブジェクト
- Proxyエキゾチックオブジェクト
- グローバルコード
- Evalコード
- 関数コード
- モジュールコード
- strictモードコード
- 非strictコード
- キーワード
- 予約語
- ダイレクトeval
- ディレクティブプロローグ
- Use Strictディレクティブ
- スクリプトレコード
- モジュールレコード
- ResolvedBindingレコード
- ResolveExport
- Cyclicモジュールレコード
- ソーステキストモジュールレコード
- ImportEntryレコード
- ExportEntryレコード
- 早期エラー
- ヒント
- %Function.prototype%
- WriteSharedMemoryレコード型
- ReadSharedMemoryレコード型
- ReadModifyWriteSharedMemoryレコード型
- 選択値レコード型
- 空の実行候
- エージェントイベントレコード