JavaScript——历史与简介

来源:互联网 发布:java断点续传下载校验 编辑:程序博客网 时间:2024/06/05 16:23

几位JS鼻祖:

布兰登·艾奇(Brendan Eich,1961年~),JavaScript之父


douglas crockford ,JavaScript一代宗师

John Resig ,JQuery创始人

JavaScript历史:

JavaScript 诞生于1995年。起初它的主要目的是处理以前由服务器端负责的一些表单验证。 在那个绝大多数用户都在使用调制解调器上网的时代,用户填写完一个表单点击提交,需要等待几十秒, 完了服务器反馈给你说某个地方填错了......在当时如果能在客户端完成一些基本的验证绝对是令人兴奋的。 当时走在技术革新最前沿的 Netscape (网景)公司,决定着手开发一种客户端语言,用来处理这种装简单的验证。当时就职于 Netscape 公司的布兰登·艾奇开始着手计划将1995年2月发布的 LiveScript 同时在浏览器和服务器中使用。为了赶在发布日期前完成 LiveScript 的开发, Netscape与 Sun 公司成立了一个开发联盟。而此时, Netscape 为了搭上媒体热炒 Java 的顺风车,临时把 LiveScript 改名为 JavaScript ,所以从本质上来说 JavaScript 和 Java 没什么关系。

JavaScript 1.0 获得了巨大的成功, Netscape 随后在 Netscape Navigator 3 (网景浏览器)中发布了 JavaScript 1.1 。之后作为竞争对手的微软在自家的 IE3 中加入了名为 JScript (名称不同是为了避免侵权)的JavaScript实现。而此时市面上意味着有3个不同的 JavaScript 版本, IE 的 JScript 、网景的 JavaScript 和 ScriptEase 中的 CEnvi 。当时还没有标准规定 JavaScript 的语法和特性。随着版本不同暴露的问题日益加剧, JavaScript 的规范化最终被提上日程。

1997年,以 JavaScript1.1 为蓝本的建议被提交给了 欧洲计算机制造商协会 ( ECMA,European Computer Manufactures Association )该协会指定39号技术委员会负责将其进行标准化, TC39 来此各大公司以及其他关注脚本语言发展的公司的程序员组成,经过数月的努力完成了 ECMA-262 ——定义了一种名为 ECMAScript 的新脚本语言的标准。第二年, ISO/IEC (国标标准化组织和国际电工委员会)也采用了 ECMAScript 作为标准(即 ISO/IEC-16262 )。

JavaScript实现:

虽然 JavaScript 和 ECMAScript 通常被人用来表达相同的意思,但 JavaScript 的含义去比 ECMA-262 中规定的多得多。一个完整的 JavaScript 实现应由三个部分组成:

1.核心(ECMAScript)

2.文档对象模型(DOM)

3.浏览器对象模型(BOM)

ECMAScript

由 ECMA-262 定义的 ECMAScript 其实与 Web 浏览器没有依赖关系。 Web 浏览器只是 ECMAScript 实现可能的宿主环境之一。 ECMA-262 定义的只这门语言的 基础,而在此基础上可能构建更完善的脚本语言。说回宿主,它不仅提供基本的 JavaScript的实现,同时也会提供该语言的扩展,比如 DOM 。其他宿主 环境还包括 Node 和 Adobe Flash 。

ECMA-262 标准主要规定了这门语言的以下组成部分:

1.语法,2.类型,3.语句,4.关键字,5.保留字,6.操作符,7.对象。

ECMAScript的版本

ECAMScript 的不同版本又称为版次, ECMA-262 最近一版是 第5版 ,发布于2009年。 ECAM-262 的第1版实质上与 Netscape 的 JavaScript1.1 相同,只不过做了些小改动:支持 Unicode 标准,对象与平台无关。

ECMA-262第2版 主要是编辑加工的结果,没有作任何新增、修改或删节处理。

ECMA-262第3版 才是对该标准第一次真正的修改。修改内容包括字符串处理、错误定义和数值输出。这一版还新增了对正则表达式、新控制语句、 try-catch 异常处理的支持,并围绕标准的国际化做出了一些小的修改。第3版也标志着 ECMAScript 成为了一门真正的编程语言。

ECMA-262第4版 对这门语言进行了一次全面的检核修订。由于 JavaScript 在Web上日益流行。开发人员纷纷建议修订 ECMAScript ,以使其能够满足不断增长的Web开发需求。 ECMA TC39 重新召集相关人员共同谋划,结果,出台后的标准几乎是在第3版的基础上完全定义了一门新语言。第4版不仅包含了强类型变量、新语句和新的数据结构、真正的类和经典继承。还定义了与数据交互的新方式。此时, TC39 下属的一个小组认为第4版给这门语言带来的跨越太大了,他们提出了 ECMAScript 3.1 的替代性建议,该建议只对这门语言进行了较少的改进。最终,ES3.1附属委员会获得的支持超过了 TC39 , ECMA-262第4版 在正式发布前被放弃。 ECMAScript 3.1 最终成为 ECMA-262第5版 ,并于2009年12月3日正式发布。第5版力求澄清第3版中已知的歧义并添加了新的功能,包括原生JSON对象、继承的方法和高级属性定义,以及严格模式。

文档对象模型(DOM)

文档对象模型是针对XML但经过扩展用于HTML的应用程序编程接口。DOM把整个页面映射为一个多层节点结构。HTML或XML页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。

比如下面这个页面:

<html>    <head>                <title>Sample Page</title>    </head>    <body>        <p>Hello World!</p>       </body>          </html>

可以通过下面这个分层节点树表示:

通过DOM创建的这个表示文档的树形图(通常也被称作文档树),程序员可以通过DOM提供的API,轻松的对其中的任何节点进行删除、添加、修改等操作。

DOM的级别:

DOM 正式被统一规划源自微软与网景在开发 DHTML (Dynamic HTML,动态HTML)上各持己见, DTHML 的出现使得开发人员第一次无需重新加载网页 就可以修改其内容。为了控制Netscape和微软在Web开发领域上两强割据,导致浏览器互不兼容的局面,负责制定Web通信标准的 W3C (WorldWide Web Consortium,万维网联盟)开始着手规划 DOM 。

DOM 1级 于1998年10月成为 W3C 的推荐标准。 DOM 1级 由两个部分组成 :DOM核心(DOM Core) 和 DOM HTML 。其中, DOM核心 是规定如何映射基于 XML的文档结构,以便对文档中的节点进行访问和操作。 DOM HTML 则在DOM的核心的基础上加以扩展,添加了针对 HTML 的对象和方法。这里需要注意的是, DOM并不是只针对JavaScript的,很多其他语言也都实现了DOM。只不在Web中,DOM已经成了JavaScript中重要的组成部分。

DOM 2级 在原基础上扩展了鼠标和用户界面整件、范围、遍历等细分模块,而且通过对象接口增加了对 CSS (Cascading Style Sheets,层叠 样式表)的支持。

DOM 3级 则进一步扩展了DOM,引入了加载和保存文档的方法。

浏览器对象模型(BOM)

开发人员可以使用BOM来控制浏览器显示页面以外的部分。而BOM真正与众不同或者说经常导致问题的地方在于它是 JavaScript 实现的一部分 却不像DOM有着相关的标准。这个问题在HTML5中得到了解决,HTML5致力于把很多BOM功能写入规范。HTML5发布后,很多关于BOM的困惑也就 消失了。 从根本来讲,BOM只处理浏览器窗口和框架,但人们习惯上也把所有针对浏览器的JavaScript扩展算作BOM的一部分。下面就是一些这样的扩展:

  • 弹出新浏览器窗口的功能; 移动、缩放和关闭浏览器窗口的功能;
  • 提供浏览器详细信息的navigator对象;
  • 提供浏览器所加载页面的详细信息的location对象;
  • 提供用户显示器分辨率详细信息的screen对象;
  • 对cookies的支持;
  • 像XMLHttpRequest和IE的ActiveXObject(AJAX的核心实现)这样的自定义对象。

关于BOM的更多内容会在以后的博文中详细介绍。

感谢你的浏览,希望能对你有所帮助。

参考文献:

Nicholas C.Zakas 著 JavaScript高级程序设计(第3版)

0 0
原创粉丝点击