image.png
JavaScript的实现
一个完整的JavaScript的实现是由核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)几个部分组成。
JavaScript的组成
ECMAScript(核心)
-
ECMAScript是一种标准,描述了语法、类型、语句、关键词、保留字、操作符和全局对象 -
JavaScript、Adobe ActionScript只是实现了ECMAScript -
ECMAScript可以为不同的宿主环境提供核心的脚本编程能力,它不与具体的宿主环境相绑定,如JS的宿主环境是浏览器,AS的宿主环境是即将淘汰的Adobe Flash。
1.1 ECMAScript版本
| 版本 | 年份 | 说明 |
|---|---|---|
ECMAScript 1 |
1997年06月 | 发布首版 |
ECMAScript 2 |
1997年06月 | 严格按照 ISO/IEC-16262 的要求做编校,没有增减或改变任何特性 |
ECMAScript 3 |
1999年12月 | 1.更新对字符串处理、错误定义和数值输出。 2.增加正则表达式、新的控制语句、 try/catch异常处理的支持 |
ECMAScript 4 |
- | 1.T39成员召集,ECMAScript 4被重新定义成一门新语言。2. ECMAScript 4跳跃太大,T39的子委员会提案ECMAScript 3.1(小改动)。3.最终放弃发布 |
ECMAScript 5 |
2009年12月3日 | 1.其实就是ECMAScript 3.12.厘清 ECMAScript 3中存在的歧义3.新增 JSON对象、方便继承和高级属性定义的方法、4.增强 ECMAScript 引擎解释和执行代码能力的严格模式"strict mode"
|
ECMAScript 5.1 |
2011 年 6 月 | 维护性修订版,只更正了规范中的错误 |
ECMAScript 6 |
2015 年 6 月 | 1.俗称ES6、ES2015 或 ES Harmony(和谐版)2.增加 let、const、class(类)、modules(模块)、 arrow functions(箭头函数)、template string(模板字符串)、promise等等3. ES2015语言规范 |
ECMAScript 7 |
2016 年 6 月 | 1.俗称ES7、ES2016 2.新增 求幂运算符(**)和array.prototype.includes方法3. ES2016语言规范 |
ECMAScript 8 |
2017 年 6 月 | 1.俗称ES8、ES2017 2.新增 sync/await、padStart()、padEnd()字符串填充方法等等,另外明确支持对象字面量最后的逗号3. ES2017语言规范 |
ECMAScript 9 |
2018 年 6 月 | 1.俗称ES9、ES2018 2.修订 Async iterator(异步迭代)、Rest参数、…(拓展运算符)、模板字面量允许使用转义字符等 |
ECMAScript 10 |
2019 年 6 月 | 1.俗称ES10、ES2019 2.修订 Array.prototype.flat() / flatMap()、 String.prototype.trimStart() / trimEnd() 、 Object.fromEntries() 方法等 |
ECMAScript 11 |
2020 年 6 月 | 1.俗称ES11、ES2020 2. String.prototype.matchAll、动态 import、BigInt
|
| ------ | ----- | ------ |
1.2 ECMAScript 符合性
这段是书中的原文
ECMA-262阐述了什么是 ECMAScript 符合性。要成为 ECMAScript 实现,必须满足下列条件:
- 支持
ECMA-262中描述的所有"类型、值、对象、属性、函数,程序语法与语义"; - 支持
Unicode字符标准。
此外,符合性实现还可以满足下列要求。
- 增加
ECMA-262中未提及的"额外的类型、值、对象、属性和函数"。ECMA-262所说的这些额外内容主要指规范中未给出的新对象或对象的新属性。 - 支持
ECMA-262中没有定义的"程序和正则表达式语法"(意思是允许修改和扩展内置的正则表达式特性)。
以上条件为实现开发者基于ECMAScript开发语言提供了极大的权限和灵活度,也是其广受欢迎的原因之一
1.3 浏览器对 ECMAScript 的支持
2008年,五大主流Web浏览器(IE、Firefox、Safari、Chrome和Opera)全部兼容 ECMA-262 第 3 版。
IE8是第一个着手实现ECMA-262第5版的浏览器,并在IE9中提供了完整的支持。
Firefox4也紧随其后做到兼容。
DOM(文档对象模型) 和 BOM(浏览器对象模型)
DOM: HTML和 XML 的应用程序接口(提供与网页内容交互的方法和接口)
BOM: 提供与浏览器交互的方法和接口
具体的介绍自行百度







网友评论