Main Content
- Scope
- Conformance
- Normative References
- Overview
- Web Scripting
- Hosts and Implementations
- ECMAScript Overview
- Terms and Definitions
- Organization of This Specification
- Notational Conventions
- Syntactic and Lexical Grammars
- Algorithm Conventions
- ECMAScript Data Types and Values
- ECMAScript Language Types
- ECMAScript Specification Types
- Abstract Operations
- Type Conversion
- Testing and Comparison Operations
- Operations on Objects
- Operations on Iterator Objects
- Syntax-Directed Operations
- Runtime Semantics: Evaluation
- Scope Analysis
- Labels
- Function Name Inference
- Contains
- Miscellaneous
- Executable Code and Execution Contexts
- Environment Records
- PrivateEnvironment Records
- Realms
- Execution Contexts
- Jobs and Host Operations to Enqueue Jobs
- InitializeHostDefinedRealm ( )
- Agents
- Agent Clusters
- Forward Progress
- Processing Model of WeakRef and FinalizationRegistry Targets
- ClearKeptObjects ( )
- AddToKeptObjects ( value )
- CleanupFinalizationRegistry ( finalizationRegistry )
- CanBeHeldWeakly ( v )
- Ordinary and Exotic Objects Behaviours
- Ordinary Object Internal Methods and Internal Slots
- ECMAScript Function Objects
- Built-in Function Objects
- Built-in Exotic Object Internal Methods and Slots
- Proxy Object Internal Methods and Internal Slots
- ECMAScript Language: Source Text
- Source Text
- Types of Source Code
- ECMAScript Language: Lexical Grammar
- Unicode Format-Control Characters
- White Space
- Line Terminators
- Comments
- Hashbang Comments
- Tokens
- Names and Keywords
- Punctuators
- Literals
- Automatic Semicolon Insertion
- ECMAScript Language: Expressions
- Identifiers
- Primary Expression
- Left-Hand-Side Expressions
- Update Expressions
- Unary Operators
- Exponentiation Operator
- Multiplicative Operators
- Additive Operators
- Bitwise Shift Operators
- Relational Operators
- Equality Operators
- Binary Bitwise Operators
- Binary Logical Operators
- Conditional Operator ( ? : )
- Assignment Operators
- Comma Operator ( , )
- ECMAScript Language: Statements and Declarations
- Statement Semantics
- Block
- Declarations and the Variable Statement
- Empty Statement
- Expression Statement
- The if Statement
- Iteration Statements
- The continue Statement
- The break Statement
- The return Statement
- The with Statement
- The switch Statement
- Labelled Statements
- The throw Statement
- The try Statement
- The debugger Statement
- ECMAScript Language: Functions and Classes
- Parameter Lists
- Function Definitions
- Arrow Function Definitions
- Method Definitions
- Generator Function Definitions
- Async Generator Function Definitions
- Class Definitions
- Async Function Definitions
- Async Arrow Function Definitions
- Tail Position Calls
- ECMAScript Language: Scripts and Modules
- Scripts
- Modules
- Error Handling and Language Extensions
- ECMAScript Standard Built-in Objects
- The Global Object
- Value Properties of the Global Object
- Function Properties of the Global Object
- Constructor Properties of the Global Object
- Other Properties of the Global Object
- Fundamental Objects
- Object Objects
- Function Objects
- Boolean Objects
- Symbol Objects
- Error Objects
- Numbers and Dates
- Number Objects
- BigInt Objects
- The Math Object
- Date Objects
- Text Processing
- String Objects
- RegExp (Regular Expression) Objects
- Indexed Collections
- Array Objects
- TypedArray Objects
- Keyed Collections
- Map Objects
- Set Objects
- WeakMap Objects
- WeakSet Objects
- Structured Data
- ArrayBuffer Objects
- SharedArrayBuffer Objects
- DataView Objects
- The Atomics Object
- The JSON Object
- Managing Memory
- WeakRef Objects
- FinalizationRegistry Objects
- Control Abstraction Objects
- Iteration
- Promise Objects
- GeneratorFunction Objects
- AsyncGeneratorFunction Objects
- Generator Objects
- AsyncGenerator Objects
- AsyncFunction Objects
- Reflection
- The Reflect Object
- Proxy Objects
- Module Namespace Objects
- Memory Model
- Memory Model Fundamentals
- Agent Events Records
- Chosen Value Records
- Candidate Executions
- Abstract Operations for the Memory Model
- Relations of Candidate Executions
- Properties of Valid Executions
- Races
- Data Races
- Data Race Freedom
- Shared Memory Guidelines
Appendix
- Grammar Summary
- Lexical Grammar
- Expressions
- Statements
- Functions and Classes
- Scripts and Modules
- Number Conversions
- Time Zone Offset String Format
- Regular Expressions
- Additional ECMAScript Features for Web Browsers
- Additional Syntax
- Additional Built-in Properties
- Other Additional Features
- The Strict Mode of ECMAScript
- Host Layering Points
- Corrections and Clarifications in ECMAScript 2015 with Possible Compatibility Impact
- Additions and Changes That Introduce Incompatibilities with Prior Editions
- Colophon
- Bibliography
- Copyright & Software License