JavaScript 诞生于1995年。当时,它的主要目的是处理以前由服务器端语言负责的一些输入验证操作。如今,JavaScript 的用途早已不再局限于简单的表单验证,而是具备了与浏览器窗口及其内容等几乎所有方面交互的能力。JavaScript 已经成为一门功能全面的编程语言,能够处理复杂的计算和交互,拥有了闭包、匿名函数(lamda,拉姆达),甚至元编程等特性。
JavaScript 从一个简单的输入验证器发展成为一门强大的编程语言,完全出乎人们的意料。应该说它既是一门非常简单的语言,又是一门非常复杂的语言。
JavaScript 简史
Netscape 公司,布兰登·艾奇(Brendan Eich),Navigator 3 / Internet Explorer 3
1997年,以JavaScript 1.1 为蓝本,ECMA(欧洲计算机制造商协会)的 TC39 (39号技术委员会)负责对其标准化,最终发布 ECMA-262。
JavaScript 实现
一个完整的 JavaScript 实现应该由下列三个不同的部分组成:
- 核心(ECMAScript)
- 文档对象模型(DOM)
- 浏览器对象模型(BOM)
ECMAScript
由 ECMAScript-262 定义的 ECMAScript 与 Web 浏览器没有依赖关系,后者只是其实现可能的宿主环境之一。其他宿主环境包括 Node 和 Adobe Flash。
ECMAScript 定义了以下内容:语法、类型、语句、关键字、保留字、操作符和对象。
最新版:ECMAScript-262 的第5个版本于2009年12月发布
兼容性:IE 5.5~7 兼容第3版,IE 8+ 兼容第5版,其他主流浏览器一般都兼容第3版。
DOM
文档对象模型(DOM)是针对 XML 但经过扩展用于 HTML 的应用程序编程接口。DOM 将整个页面映射为一个多层节点结构。
一开始,IE 4 和 Navigator 4 分别支持不同形式的 DHTML ,浏览器互不兼容。此时,负责 Web 通信标准的 W3C (万维网联盟)开始着手规划 DOM。
DOM 级别:DOM 1 级实现了映射文档结构,DOM 2 级扩展了,DOM 3 级进一步扩展了。
浏览器支持:IE 5.5~8 1级,IE9 + 1级、2级、3级,Chrome 1+ 1级、2级,Firefox 1+ 1级、2级、3级。
BOM
浏览器对象模型支持可以访问和操作浏览器窗口,可以控制浏览器显示的页面以外的部分。BOM 没有相关标准,直到 HTML 5 才将 BOM 正式规范化。例如下面的扩展都属于 BOM :
- 弹出窗口功能
- 移动、缩放和关闭浏览器窗口的功能
- 提供浏览器详细信息的 navigator 对象
- 提供浏览器所加载页面的详细信息的 location 对象
- 提供用户显示器分辨率详细信息的 screen 对象
- 对 cookie 的支持
- 像 XMLHttpRequest 和 IE 的 ActiveXObject 对象