@H_404_1@
第一章 JavaScript 简介
JavaScript 简史
在 Web 日益流行的同时,人们对客户端脚本语言的需求也越来越强烈。那个时候,绝大多数因
特网用户都使用速度仅为 28.8kbit/s 的“猫”(调制解调器)上网,但网页的大小和复杂性却不断增
加。为完成简单的表单验证而频繁地与服务器交换数据只会加重用户的负担。想象一下:用户填写
完一个表单,单击“提交”按钮,然后等待 30 秒钟,最终服务器返回消息说有一个必填字段没有
填好……当时走在技术革新最前沿的 Netscape 公司,决定着手开发一种客户端语言,用来处理这种
简单的验证。
当时就职于 Netscape
公司的布兰登·艾奇(Brendan Eich
),开始着手为计划于 1995 年 2 月
发布的
Netscape Navigator 2 开发一种名为 LiveScript
的脚本语言——该语言将同时在浏览器和服务器中使用
(它在服务器上的名字叫 LiveWire)。为了赶在发布日期前完成 LiveScript 的开发,Netscape
与 Sun
公司
建立了一个开发联盟。在 Netscape Navigator 2 正式发布前夕,`Netscape 为了搭上媒体热炒 Java 的顺风车,
临时把 LiveScript 改名为 JavaScript`。
由于 JavaScript 1.0 获得了巨大成功,Netscape 随即在 Netscape Navigator 3 中又发布了 JavaScript 1.1。
Web 虽然羽翼未丰,但用户关注度却屡创新高。在这样的背景下,Netscape 把自己定位为市场领袖型公
司。与此同时,微软
决定向与 Navigator 竞争的自家产品 Internet Explorer
浏览器投入更多资源。Netscape
Navigator 3 发布后不久,微软就在其 Internet Explorer 3 中加入了名为 JScript 的 JavaScript 实现(命名为
JScript 是为了避开与 Netscape 有关的授权问题)。以现在的眼光来看,`微软 1996 年 8 月为进入 Web 浏览
器领域`而实施的这个重大举措,是导致 Netscape 日后蒙羞的一个标志性事件。然而,这个重大举措同时
也标志着 JavaScript 作为一门语言,其开发向前迈进了一大步。
微软推出其 JavaScript 实现意味着有了两个不同的 JavaScript 版本:Netscape Navigator 中的JavaScript
、Internet Explorer 中的 JScript
。与 C 及其他编程语言不同,当时还没有标准规定 JavaScript 的
语法和特性,两个不同版本并存的局面已经完全暴露了这个问题。随着业界担心的日益加剧,JavaScript
的标准化问题被提上了议事日程。
1997
年,以 JavaScript 1.1 为蓝本的建议被提交给了`欧洲计算机制造商协会(ECMA,European
Computer Manufacturers Association)。该协会指定
39 号技术委员会(TC39,Technical Committee #39)`
负责“标准化一种通用、跨平台、供应商中立的脚本语言的语法和语义”(
international.org/memento/TC39.htm)。TC39 由来自 Netscape
、Sun
、微软
、Borland
及其他关注脚本语言
发展的公司的程序员组成,他们经过数月的努力完成了 ECMA-262——定义一种名为 ECMAScript
(发
音为“ek-ma-script”)的新脚本语言的标准。
第二年,ISO/IEC(International Organization for Standardization and International Electrotechnical
Commission,国标标准化组织和国际电工委员会)也采用了 ECMAScript 作为标准(即 ISO/IEC-16262)。
自此以后,浏览器开发商就开始致力于将 ECMAScript 作为各自 JavaScript 实现的基础,也在不同程度
上取得了成功。
JavaScript 实现
- 核心(ECMAScript)
- 文档对象模型(DOM)
- 浏览器对象模型(BOM)
我们常见的 Web 浏览器只是 ECMAScript 实现可能的宿主环境之一
。宿主环境不仅提供基本的
ECMAScript 实现,同时也会提供该语言的扩展,以便语言与环境之间对接交互。而这些扩展——如
DOM,则利用 ECMAScript 的核心类型和语法提供更多更具体的功能,以便实现针对环境的操作。
- ECMAScript 的版本
ECMAScript 的不同版本又称为版次,以第 x 版表示(意即描述特定实现的 ECMA-262 规范的第 x
个版本)。ECMA-262 的最近一版是第 5 版,发布于 2009 年
。
ECMA-262 的第 1 版
本质上与 Netscape
的 JavaScript 1.1 相同——只不过删除了所有针对浏览器的代码并作了一些较小的改动
ECMA-262 第 2 版
主要是编辑加工的结果。
ECMA-262 第 3 版
才是对该标准第一次真正的修改。修改的内容涉及字符串处理、错误定义和数
值输出。这一版还新增了对正则表达式、新控制语句、try-catch 异常处理的支持,并围绕标准的
国际化做出了一些小的修改。从各方面综合来看,第 3 版标志着 ECMAScript 成为了一门真正的编程
语言。
ECMA-262 第 4 版
对这门语言进行了一次全面的检核修订。由于 JavaScript 在 Web 上日益流行,开
发人员纷纷建议修订 ECMAScript,以使其能够满足不断增长的 Web 开发需求。作为回应,ECMA TC39
重新召集相关人员共同谋划这门语言的未来。结果,出台后的标准几乎在第 3 版基础上完全定义了一门
新语言。第 4 版不仅包含了强类型变量、新语句和新数据结构、真正的类和经典继承,还定义了与数据
交互的新方式。与此同时,TC39
下属的一个小组也提出了一个名为 ECMAScript 3.1 的替代性建议
,该建议只对这
门语言进行了较少的改进。这个小组认为第 4 版给这门语言带来的跨越太大了。因此,该小组建议对这
门语言进行小幅修订,能够在现有 JavaScript 引擎基础上实现。最终,`ES3.1 附属委员会获得的支持超过
了 TC39,ECMA-262 第 4 版在正式发布前被放弃`。
ECMAScript 3.1 成为 ECMA-262 第 5 版
,并于 2009 年 12 月 3 日正式发布。第 5 版力求澄清第 3
版中已知的歧义并增添了新的功能。新功能包括原生 JSON 对象(用于解析和序列化 JSON 数据)、继
承的方法和高级属性定义,另外还包含一种严格模式,对 ECMAScript 引擎解释和执行代码进行了补充
说明。
- 文档对象模型(DOM)
负责制定 Web 通信标准的 W3C(World Wide Web Consortium,万维网联盟)开始着
手规划 DOM
在阅读 DOM 标准的时候,读者可能会看到 DOM0 级(DOM Level 0)的字眼。
实际上,DOM0 级标准是不存在的;所谓 DOM0 级只是 DOM 历史坐标中的一个参照
点而已。具体说来,DOM0 级指的是 Internet Explorer 4.0 和 Netscape Navigator 4.0 最
初支持的 DHTML。
DOM1 级
(DOM Level 1)于 1998 年 10 月成为 W3C 的推荐标准,目标主要是映射文档的结构。
DOM2 级
在
原来 DOM 的基础上又扩充了(DHTML 一直都支持的)鼠标和用户界面事件、范围、遍历(迭代 DOM
文档的方法)等细分模块,而且通过对象接口增加了对 CSS(Cascading Style Sheets,层叠样式表)的
支持。DOM1 级中的 DOM 核心模块也经过扩展开始支持 XML 命名空间。
DOM3 级
则进一步扩展了 DOM,引入了以统一方式加载和保存文档的方法——在 DOM 加载和保
存(DOM Load and Save)模块中定义;
- 浏览器对象模型(BOM)
- 弹出新浏览器窗口的功能;
- 移动、缩放和关闭浏览器窗口的功能;
- 提供浏览器详细信息的 navigator 对象;
- 提供浏览器所加载页面的详细信息的 location 对象;
- 提供用户显示器分辨率详细信息的 screen 对象;
- 对 cookies 的支持;
- 像 XMLHttpRequest 和 IE 的 ActiveXObject 这样的自定义对象
小结
JavaScript 是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成:
第二章 在 HTML 中使用 JavaScript
- 标签之间再
包含额外的 JavaScript 代码`。如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码
会被忽略
。即当浏览器不支持 JavaScript 时如何让页面平稳地退化。对这
个问题的最终解决方案就是创造一个
原文链接:https://www.f2er.com/js/413360.html的内容。
<body> <noscript> <p>本<a href="https://www.jb51.cc/tag/yemian/" target="_blank" class="keywords">页面</a>需要浏览器<a href="https://www.jb51.cc/tag/zhichi/" target="_blank" class="keywords">支持</a>(启用)JavaScript。 </noscript> </body>
这个页面会在脚本无效的情况下向用户显示一条消息。而在启用了脚本的浏览器中,用户永远也不
会看到它——尽管它是页面的一部分。第三章 基 本 概 念
作者:刘伟波
链接:http://www.liuweibo.cn/p/222
本文原创版权属于刘伟波 ,转载请注明出处,谢谢合作