1.3.1 什么是JavaScript

JavaScript是一种具有函数优先的轻量级、解释型、即时编译型的编程语言,是一种基于原型编程、多范式的动态脚本语言,支持面向对象、命令式和声明式(如函数式)编程风格。

JavaScript在1995年由Brendan Eich(布兰登·艾奇)发明,并于1997年成为ECMA标准。完整的JavaScript实现包括ECMAScript、DOM和BOM这3部分。

1.ECMAScript(核心部分)

ECMAScript是一种脚本语言规范,由ECMA制定和发布,任何基于此规范的脚本语言都要遵守它的约定。JavaScript就是一种基于ECMAScript规范的脚本语言,并在此基础上进行了封装。

从2012年起,几乎所有的浏览器都完整地支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3。2015年6月17日,ECMA发布了ECMAScript的第6版,该版本的正式名称为ECMAScript 2015(简称ES 2015),特指该年发布的正式版本的语言标准。

ECMAScript 6简称ES6,是指ECMAScript 5.1后的JavaScript的下一代标准,涵盖ES 2015、ES 2016、ES 2017等。ECMAScript的发展历程如图1-2所示。

图1-2 ECMAScript的发展历程

2.DOM

DOM(Document Object Model,文档对象模型)是HTML和XML文档的编程接口。它提供了文档结构化的表述,并定义了一种利用程序访问该结构的方式,从而可以动态改变文档的结构、样式和内容。DOM将文档解析为由节点和对象(包含属性和方法)组成的结构集合。其中文档的根节点是document节点,唯一子节点是HTML元素(也叫作文档元素),其他元素都是这个元素的子元素。

DOM是由Web技术的标准化组织W3C进行标准化的,目前有4个等级。1998年10月1日,DOM Level1成为W3C的推荐标准,其目标是映射文档结构。2000年11月13日,DOM Level2成为W3C的推荐标准,它将DOM分为更多具有联系的模块,在原来DOM的基础上扩充了鼠标、用户界面事件、范围、遍历等细分模块,而且通过对象接口增加了对CSS的支持。2004年4月7日,DOM Level3成为W3C的推荐标准,它进一步扩展了DOM,引入了以统一方式加载和保存文档的方法,这些方法定义在DOM Load And Save模块中。DOM Level3同时新增了验证文档的方法,这些方法定义在DOM Validation模块中。目前,W3C不再按照Level来维护DOM,而是将其作为DOM Living Standard来维护,其快照称为DOM 4。

除了W3C推荐的DOM标准,其他语言也发布了自己的DOM标准。例如,基于XML语言的DOM方法和接口:SVG、MathML和SMIL等。

3.BOM

BOM(Browser Object Model,浏览器对象模型)支持访问和操作浏览器窗口。多年来,BOM是在缺乏规范的背景下发展的,直到有了HTML5。HTML5规范涵盖了BOM的主要内容,因为W3C希望将JavaScript在浏览器中最基础的部分标准化。BOM由多个对象组成,其中代表浏览器窗口的window对象是BOM的顶层对象,其他对象都是该对象的子对象。