ECMAScript 与 JavaScript
- ECMAScript 是一套脚本语言的规范,内部编号 ECMA-262
- 该规范由 Ecma(European Computer Manufacturers Association) 制定
- 规范保证开发者按照规范编写的代码能在大部分浏览器中正常工作,因为这些浏览器约定去遵守规范
- JavaScript,JScript 和 ActionScript 都是基于该规范的实现
- 阅读 ECMAScript 规范,你知道如何创造一个脚本语言
- 阅读 JavaScript 文档,你知道如何使用一个脚本语言
TC39
TC39(Technical Committee 39) 是 ECMAScript 规范的制定者
规范制定的过程
- Stage 0: strawman
该阶段是一个开放提交阶段,任何在TC39注册过的贡献都或TC39成员都可以进行提交。提交内容可以是一个提议、想法、初步描述
Stage 1: proposal
该阶段是对所提交新特性的正式建议。在这个阶段需具备以下条件:
- TC39指定一名成员作为Champion
- TC39审阅通过
- 有实现的 Demo 或者 Polyfill
- 初步编写标准,包括:问题描述、解决方案示例、语法语义API、关键的算法及抽象、实现在的复杂度等
Stage 2: draft
该阶段是会出现标准中的第一个版本。在这个阶段必须要具备以下条件:
- 更规范化语法特性和语意的说明,并使用ECMAScript标准的正式语言描述该特性的语法、语义、API
- 该特性应该有两个实验性的实现,其中一个可以基于Babel等转译器实现
Stage 3: candidate
该阶段的提议已接近完成,只需要得到提议实现方的反馈,并由用户来进一步推动。在这个阶段应具备以下条件:
- 编写Test 262测试例,且至少2个用例通过测试
- TC39指定的审稿人审核通过
- 开发者的足够认可
Stage 4: finished
该阶段的会被包括到标准之中。在这个阶段应具备以下条件:
- Test 262验收测试通过
- 两个符合规范的实现通过
- TC39审核通过
- 开发者的支持和认可
版本命令规则使用 ECMAScript+年份 的形式
JavaScript 引擎
执行 JavaScript 代码的程序
- V8 in Chrome
- SpiderMonkey in Firefox
- Chakra in Edge
引擎决定了代码执行的效率
JavaScript runtime
不同的运行环境提供了不同的 API,供 JavaScript 使用
W3C
W3C(World Wide Web Consortium) 是制定万维网标准的组织
这些标准包括 CSS、DOM、HTML 等等
W3C制定标准的过程
- Working draft / WD / 工作草案
- Candidate recommendation / CR / 候选推荐规范
- Proposed recommendation / PR / 提名推荐规范
- W3C recommendation / REC / 正式推荐规范
WHATWG
WHATWG(Web Hypertext Application Technology Working Group) 是另一个制定 HTML 及其相关技术标准的组织
WHATWG 制定的标准称为 “HTML Living Standard”,W3C 致力于发布一个“定稿”的 HTML5 标准,而 WHATWG 则倾向于让标准不断发展,仅发布 HTML 的当前实时版本(Living Standard)