1.1 JavaScript 简史
JavaScript诞生于1995年,起初由Netscape公司的布兰登·艾奇开发用于在客户端处理一些简单的输入验证工作,起初的名字为LiveScript,但是为了搭上大火的Java,临时把 LiveScript 改名为 JavaScript. 在JavaScript 1.0 获得了巨大成功后,Netscape 随即在 Netscape Navigator 3 中又发布了 JavaScript 1.1。当时与Netscape竞争的微软就在其 Internet Explorer 3 中加入了名为 JScript 的 JavaScript 实现。JavaScript、JScript两个不同版本并存的局面已经完全暴露了这个问题。随着业界担心的日益加剧,JavaScript的标准化问题被提上了议事日程。 1997 年,以 JavaScript 1.1 为蓝本的建议被提交给了欧洲计算机制造商协会(ECMA,EuropeanComputer Manufacturers Association)。该协会指定 39 号技术委员会(TC39,Technical Committee #39)负责“标准化一种通用、跨平台、供应商中立的脚本语言的语法和语义”(www.ecmainternational.org/memento/TC3… 由来自 Netscape、Sun、微软、Borland 及其他关注脚本语言发展的公司的程序员组成,他们经过数月的努力完成了 ECMA-262——定义一种名为 ECMAScript(发音为“ek-ma-script”)的新脚本语言的标准。
1.2 JavaScript 实现
虽然 JavaScript 和 ECMAScript 通常都被人们用来表达相同的含义,但 JavaScript 的含义却比 ECMA-262 中规定的 要多得多。一个完整的JavaScript由三个部分组成,分别是ECMAScript,BOM,DOM.
1.2.1 ECMAScript
ECMAScript 与 Web 浏览器没有依赖关系.ECMA-262 定义的只是这门语言的基础,而在此基础之上可以构建更完善的脚本语言。我们常见的 Web 浏览器只是 ECMAScript 实现可能的宿主环境之一。大致来说,规定了以下几部分, 语法 类型 语句 关键字 保留字 操作符 对象
1.2.2 文档对象模型(DOM)
- 为什么要使用dom 通过 DOM 创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。借助DOM 提供的 API,开发人员可以轻松自如地删除、添加、替换或修改任何节点。 如果不对 Netscape 和微软加以控制,Web 开发领域就会出现技术上两强割据,浏览器互不兼容的局面。此时,负责制定 Web 通信标准的 W3C(World Wide Web Consortium,万维网联盟)开始着手规划 DOM。
- dom级别 DOM0: DOM0 级指的是 Internet Explorer 4.0 和 Netscape Navigator 4.0 最初支持的 DHTML。 DOM1: 组成 DOM Core:规定的是如何映射基于 XML 的文档结构,以便简化对文档中任意部分的访问和操作。 DOM HTML:在 DOM 核心的基础上加以扩展,添加了针对 HTML 的对象和方法。 DOM2:引入新的模块 视图 ,事件,样式,遍历与范围 DOM3:引入了以统一方式加载和保存文档的方法,新增了验证文档的方法,也对 DOM 核心进行了扩展,开始支持 XML 1.0 规范
- 其他 DOM 标准 可伸缩矢量图SVG, 数学标记语言MathML, 同步多媒体集成语言SMIL
1.2.3 浏览器对象模型(BOM)
支持可以访问和操作浏览器窗口的浏览器对象模型. 从根本上讲,BOM 只处理浏览器窗口和框架;但人们习惯上也把所有针对浏览器的 JavaScript 扩展算作 BOM 的一部分。下面就是一些这样的扩展:
-
弹出新浏览器窗口的功能; - 移动、缩放和关闭浏览器窗口的功能;
- 提供浏览器详细信息的 navigator 对象;
- 提供浏览器所加载页面的详细信息的 location 对象;
- 提供用户显示器分辨率详细信息的 screen 对象;
- cookies 的支持;
- 像 XMLHttpRequest 和 IE 的 ActiveXObject 这样的自定义对象。
1.3小结
JavaScript 是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成:
-
ECMAScript,由 ECMA-262 定义,提供核心语言功能; -
文档对象模型(DOM),提供访问和操作网页内容的方法和接口; -
JavaScript 的这三个组成部分,在当前五个主要浏览器(IE、Firefox、Chrome、Safari 和 Opera)中都得到了不同程度的支持。其中,所有浏览器对 ECMAScript 第 3 版的支持大体上都还不错,而对ECMAScript 5 的支持程度越来越高,但对 DOM 的支持则彼此相差比较多。对已经正式纳入 HTML5 标准的 BOM 来说,尽管各浏览器都实现了某些众所周知的共同特性,但其他特性还是会因浏览器而异。浏览器对象模型(BOM),提供与浏览器交互的方法和接口。