1.1 JavaScript的实现包含三个部分:

image.png

1.1.1 ECMAScript

1.历史回顾

1995 网景提出live Script->javaScript
微软提出JScript 引入web浏览器IE
1997 ECMA(欧洲计算机制造商协会)的第39委员会(TC39)打造ECMA-262即ECMAScript这个脚本语言标准
1998 ISO(国际标准化组织)将ECMAScript采纳为标准

2.版本更迭

1-10
ES5 2009.12 JSON对象、严格模式、继承方法
ES6/ES2015/ESHarmony 2015.06 类、模块、迭代器、生成器、箭头函数、期约、反射、代理、新数据类型
ES7 2016.06 Array.prototype.includes和指数操作符
ES8 2017.06 异步函数(async/await)、Object.values()/Object.entries()…
ES9 2018.06 Promise finally()、剩余和扩展属性、异步迭代、新的正则表达式特性…
ES10 2019.06 增加方法Array.prototype.flat()/flatMap()…

3.浏览器的支持性

完全支持ES5:
IE10\11、Opera15~28、safari6~8、ios safari6~8.4、chrome 23+、firefox 21~44
支持ES6:
Edge12+、Opera29~35(部分)、Opera36+、safari 9+、iOS safari 9.2+、chrome 42~48(部分)、chrome 49+、firefox 45+

1.1.2 DOM

1.概念

DOM(Document Object Model)文档对象模型,是一个应用编程接口(API),用于将HTML页面抽象为一组分层节点从而创建出了一棵表示文档的树,方便开发者通过DOM API来删除、添加、替换、修改节点。

2.级别

DOM Core+DOM HTML:
DOM level1:DOM Core+DOM HTML 映射文档结构
DOM level2:新增视图、事件、样式、遍历和范围模块,以支持新的接口
DOM level3:新增DOM Load and Sava模块、DOM Validation验证文档的方法
DOM 4:(DOM Living Standard)Mutation Events-> Mutation Observers

3.其他DOM

可伸缩矢量图(SVG)、数学标记语言(MathML)、同步多媒体集成语言(SMIL)

4.Web浏览器的支持性:

兼容部分level3的:
IE9+、Edge、Opera9+、Safari 2+、iOS Safari 3.2+、chrome 1+、Firefox 1+

1.1.3 BOM

1.概念

BOM(Browser Object model)浏览器对象模型,是一个应用编程接口(API)、用于支持访问和操作浏览器的窗口和子窗口(frame),也包括一些特定于浏览器的扩展:
弹出新浏览器窗口的能力
移动、缩放和关闭浏览器窗口的能力
navigator对象 提供关于浏览器的详尽信息
location对象 提供浏览器加载页面的详尽信息
screen对象 提供关于用户屏幕分辨率的详尽信息
performance对象 提供浏览器内存占用、导航行为和时间统计的详尽信息
对cookie的支持
其他自定义对象,如XMLHttpRequest和IE的ActiveXObject

1.2 小结

JavaScript 是一门用来与网页交互的脚本语言,包含以下三个组成部分。
ECMAScript:由ECMA-262 定义并提供核心功能。
文档对象模型(DOM):提供与网页内容交互的方法和接口。
浏览器对象模型(BOM):提供与浏览器交互的方法和接口。
JavaScript 的这三个部分得到了五大Web 浏览器(IE、Firefox、Chrome、Safari 和Opera)不同程度
的支持。所有浏览器基本上对ES5(ECMAScript 5)提供了完善的支持,而对ES6(ECMAScript 6)和
ES7(ECMAScript 7)的支持度也在不断提升。这些浏览器对DOM的支持各不相同,但对Level 3 的支
持日益趋于规范。HTML5 中收录的BOM 会因浏览器而异,不过开发者仍然可以假定存在很大一部分
公共特性。