# EcmaScript规范
**Repository Path**: wu-wenlu/ecma-script-specification
## Basic Information
- **Project Name**: EcmaScript规范
- **Description**: 快速理解Ecma Script规范
- **Primary Language**: 其他
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 5
- **Created**: 2023-09-25
- **Last Updated**: 2023-12-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 《人人都能读标准》—— JavaScript篇
**本书系统地介绍了[JavaScript标准](https://tc39.es/ecma262/multipage/)的阅读规则以及使用方式,并深入剖析了标准对JavaScript核心原理的描述。** 通过本书,读者能够完全掌握自行阅读标准的能力,深化对语言的理解,并最终得以使用标准 —— 这个世界上最好的JavaScript资料来解决日常工作问题、进阶个人编码能力。
### 目录:
**前言:** [**为什么需要阅读标准?** ](./Preface.md)
**Part1 介绍篇:**
1. [**标准的阅读指南**](./1.reading_gudie.md)
2. [**标准的迭代模式**](./2.evolution.md)
3. [**宿主环境**](./3.host-environment.md)
**Part2 原理篇:**
4. [**文法符号系统(1)** ](./4.context-free-grammar.md)
5. [**文法符号系统(2)** ](./5.grammar-summary.md)
6. [**算法符号系统**](./6.algorithm.md)
7. [**规范类型**](./7.spec_type.md)
8. [**运行环境可视化:agents、执行上下文、Realm**](./8.execution-environment.md)
9. [**运行环境可视化:作用域与声明实例化**](./9.scope.md)
10. [**运行环境可视化:作用域链与闭包**](./10.scope-chain.md)
11. [**原理篇总结:一个程序的完整执行过程**](./11.code-execution.md)
**Part3 应用篇:**
12. [**内部模型:原始类型**](./12.primitive-type.md)
13. [**内部模型:对象类型**](./13.object-type.md)
14. [**底层算法:函数的创建与执行**](./14.function.md)
15. [**底层算法:类的创建与实例化**](./15.class.md)
16. [**底层算法:生成器的创建与异步迭代**](./16.iterator&generator.md)
17. [**底层算法:JavaScript的错误处理机制**](./17.error.md)
18. [**应用标准:手写一个通过test262标准符合性测试的Promise**](./18.promise.md)
19. [**应用标准:4个步骤永久根治this值问题**](./19.this.md)
20. [**结语:使用engine262把标准“跑”起来**](./20.engine262.md)
## 概念术语对照表
下表是本书对标准术语使用的中文翻译,这里很大一部分的翻译沿用掘金社区提供的[参考](https://github.com/xitu/gold-miner/wiki/ECMAScript%E7%BF%BB%E8%AF%91%E6%8C%87%E5%8D%97%EF%BC%882021.5%EF%BC%89)。在表中,点击左侧的链接会跳转到标准中定义该术语的位置,点转右侧的链接会跳转到本书与该术语相关的章节。
| 英文 | 中文 |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| [Notational Conventions](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-notational-conventions) | [表示法约定](./1.reading_gudie.md#第5章表示法约定) |
| [host environment](https://tc39.es/ecma262/multipage/overview.html#host-environment) | [宿主环境](./3.host-environment.md) |
| [host-defined](https://tc39.es/ecma262/multipage/overview.html#host-defined) | [宿主定义](./3.host-environment.md) |
| [implementation-defined](https://tc39.es/ecma262/multipage/overview.html#implementation-defined) | [实现定义](./3.host-environment.md) |
| [host hooks](https://tc39.es/ecma262/multipage/overview.html#host-hook) | [宿主钩子](./3.host-environment.md#加载模块) |
| [grammar](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-context-free-grammars) | [文法](./4.context-free-grammar.md) |
| [production](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-context-free-grammars) | [产生式](./4.context-free-grammar.md#文法的基本理解规则) |
| [alternative](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-notational-conventions) | [代换式](./4.context-free-grammar.md#文法的基本理解规则) |
| [goal symbol](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-context-free-grammars) | [目标符](./4.context-free-grammar.md#文法的基本理解规则) |
| [terminator](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-context-free-grammars) | [终结符](./4.context-free-grammar.md#文法的基本理解规则) |
| [nonterminator](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-context-free-grammars) | [非终结符](./4.context-free-grammar.md#文法的基本理解规则) |
| [context-free grammars](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-context-free-grammars) | [上下文无关文法](./4.context-free-grammar.md#文法的基本理解规则) |
| [Lookahead Restrictions](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-lookahead-restrictions) | [前瞻限制](./4.context-free-grammar.md#文法的表示约定) |
| [grammatical parameters](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-grammatical-parameters) | [文法参数](./4.context-free-grammar.md#文法参数) |
| [lexical grammer](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-lexical-and-regexp-grammars) | [词法文法](./5.grammar-summary.md#词法分析) |
| [Input element](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-lexical-and-regexp-grammars) | [输入元素](./5.grammar-summary.md#词法分析) |
| [syntactic grammer](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-syntactic-grammar) | [句法文法](./5.grammar-summary.md#句法分析) |
| [parse tree](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-syntactic-grammar) | [解析树](./5.grammar-summary.md#句法分析) |
| [abstract operations](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-algorithm-conventions-abstract-operations) | [抽象操作](./6.algorithm.md#抽象操作) |
| [syntax-directed operation](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations) | [语法导向操作](./6.algorithm.md#语法导向操作) |
| [semantics](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations) | [语义](./6.algorithm.md#语法导向操作) |
| [runtime semantics](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-runtime-semantics) | [运行时语义](./6.algorithm.md#运行时语义) |
| [Runtime Semantics: Evaluation](https://tc39.es/ecma262/multipage/syntax-directed-operations.html#sec-evaluation) | [求值语义](./6.algorithm.md#运行时语义) |
| [static semantics](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-static-semantic-rules) | [静态语义](./6.algorithm.md#静态语义) |
| [early error](https://tc39.es/ecma262/multipage/error-handling-and-language-extensions.html#early-error) | [先验错误](./6.algorithm.md#静态语义) |
| [chain production](https://tc39.es/ecma262/multipage/notational-conventions.html#sec-context-free-grammars) | [链式产生式](./6.algorithm.md#链式产生式的语法导向操作) |
| [specification Types](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-ecmascript-specification-types) | [规范类型](./7.spec_type.md) |
| [Record](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-list-and-record-specification-type) | [记录器](./7.spec_type.md#记录器record) |
| [Script Record](https://tc39.es/ecma262/multipage/ecmascript-language-scripts-and-modules.html#script-record) | [脚本记录器](./7.spec_type.md#记录器record) |
| [Property Descriptor](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-property-descriptor-specification-type) | [属性描述符记录器](./7.spec_type.md#属性描述符记录器property-descriptor-record) |
| [Completion Record](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-completion-record-specification-type) | [完成记录器](./7.spec_type.md#完成记录器completion-record) |
| [normal completion](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-completion-record-specification-type) | [正常完成](./7.spec_type.md#完成记录器completion-record) |
| [abrupt completion](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-completion-record-specification-type) | [硬性完成](./7.spec_type.md#完成记录器completion-record) |
| [Abstract Closure](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-abstract-closure) | [抽象闭包](./7.spec_type.md#抽象闭包abstract-closure) |
| [agent clusters](https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#sec-agent-clusters) | [agent集群](./8.execution-environment.md) |
| [execution context stack](https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#execution-context-stack) | [调用栈](./8.execution-environment.md#调用栈与执行上下文) |
| [execution context](https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#sec-execution-contexts) | [执行上下文](./8.execution-environment.md#调用栈与执行上下文) |
| [ECMAScript code execution contexts](https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#ecmascript-code-execution-context) | [ECMAScript代码执行上下文](./8.execution-environment.md#执行上下文中的词法环境是作用域链的起点) |
| [LexicalEnvironment](https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#table-additional-state-components-for-ecmascript-code-execution-contexts) | [词法环境](./8.execution-environment.md#执行上下文中的词法环境是作用域链的起点) |
| [Realm Record](https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#realm-record) | [Realm记录器](./8.execution-environment.md#realm) |
| [Environment Record](https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#sec-environment-records) | [环境记录器](./9.scope.md#环境记录器--标识符的容器) |
| [identifier](https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#sec-identifiers) | [标识符](./9.scope.md#环境记录器--标识符的容器) |
| [DeclarationInstantiation](https://tc39.es/ecma262/multipage/ecmascript-language-statements-and-declarations.html#sec-blockdeclarationinstantiation) | [声明实例化](./9.scope.md#声明实例化的一般过程) |
| [lexicalDeclared](https://tc39.es/ecma262/multipage/syntax-directed-operations.html#sec-static-semantics-lexicallydeclarednames) | [词法声明](./9.scope.md#1-作用域分析) |
| [VarDeclaraed](https://tc39.es/ecma262/multipage/syntax-directed-operations.html#sec-static-semantics-vardeclarednames) | [变量声明](./9.scope.md#1-作用域分析) |
| [instantiate](https://tc39.es/ecma262/multipage/ecmascript-language-statements-and-declarations.html#sec-let-and-const-declarations) | [实例化](./9.scope.md#2-绑定标识符) |
| [initialize](https://tc39.es/ecma262/multipage/ecmascript-language-statements-and-declarations.html#sec-let-and-const-declarations) | [初始化](./9.scope.md#2-绑定标识符) |
| [Reference Record](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-reference-record-specification-type) | [引用记录器](./10.scope-chain.md#标识符的解析) |
| [code point](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-ecmascript-language-types-string-type) | [码点](./12.primitive-type.md#string类型的编码形式) |
| [code unit](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-ecmascript-language-types-string-type) | [码元](./12.primitive-type.md#string类型的编码形式) |
| [high-surrogate code unit](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#high-surrogate-code-unit) | [高代理码元](./12.primitive-type.md#string类型的编码形式) |
| [low-surrogate code unit](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#low-surrogate-code-unit) | [低代理码元](./12.primitive-type.md#string类型的编码形式) |
| [surrogate pair](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#surrogate-pair) | [代理对](./12.primitive-type.md#string类型的编码形式) |
| [internal method](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-object-internal-methods-and-internal-slots) | [内部方法](./13.object-type.md#对象的内部模型) |
| [internal slots](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-object-internal-methods-and-internal-slots) | [内部插槽](./13.object-type.md#对象的内部模型) |
| [ordinary object](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#ordinary-object) | [普通对象](./13.object-type.md#普通对象-vs-异质对象) |
| [exotic object](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#exotic-object) | [异质对象](./13.object-type.md#普通对象-vs-异质对象) |
| [built-in object](https://tc39.es/ecma262/multipage/ecmascript-standard-built-in-objects.html#sec-ecmascript-standard-built-in-objects) | [内置对象](./13.object-type.md#内置对象-vs-非内置对象) |
| [classElement](https://tc39.es/ecma262/multipage/ecmascript-language-functions-and-classes.html#prod-ClassElement) | [class元素](./15.class.md#3-给两个对象添加属性方法) |
| [PrivateEnvironment](https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#privateenvironment-record) | [私有环境](./15.class.md#关于私有元素) |
| [iterator](https://tc39.es/ecma262/multipage/control-abstraction-objects.html#sec-iterator-interface) | [迭代器](./16.iterator&generator.md#迭代器与可迭代对象) |
| [iterable](https://tc39.es/ecma262/multipage/control-abstraction-objects.html#sec-iterable-interface) | [可迭代对象](./16.iterator&generator.md#迭代器与可迭代对象) |
| [parsing errors](https://tc39.es/ecma262/multipage/error-handling-and-language-extensions.html#sec-error-handling-and-language-extensions) | [解析错误](./17.error.md) |
| [runtime errors](https://tc39.es/ecma262/multipage/error-handling-and-language-extensions.html#sec-error-handling-and-language-extensions) | [运行时错误](./17.error.md) |
-----
本书的版权协议为 [CC-BY-NC-ND license](https://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh)。
