JavaScript高级程序设计第三版(第一章:JavaScript简介)

1、因何而生,如何发展,现状如何 JavaScript和ECMAScript之间的关系

1.一、JavaScript简史

JavaScript诞生于1995年,由NetScape公司的布兰登-爱奇开发。因为JavaScript1.0得到巨大成功,NetScape随即在NetScape Navigator3中又发布了JavaScript1.1。于此同时,微软就在其Internet Explorer3中加入了名为JScript的JavaScript实现。然而,这个重大举措同时标志着JavaScript做为一门语言,进入了人们视野。微软推出了其JavaScript实现意味着3个不一样的JavaScript版本:NetScape JavaScript、Internet Explorer3 JScript、ScriptEase CEvi。当时尚未标准规定JavaScript语法和特性,3个不一样的JavaScript版本暴露了这个问题。所以,JavaScript的标准化问题被提上了日程。1997年,以JavaScript1.1为蓝本的建议被提交给了ECMA,该协会制定39号(微软、NetScape、Sun、Borland和其余公司专家组成)技术委员会,完成了ECMA-262☞定义了一种名为ECMAScript的新脚本的语言标准。正则表达式

1.二、JavaScript实现

    一个完整的JavaScript的实现由三种不一样部分组成:1.核心(ECMAScript)、2.文档对象模型(DOM)、3.浏览器对象模型(BOM)。

  1. ECMAScript于Web浏览器没有依赖关系。它定义的只是这门语言的基础,一个通用的标准。Web浏览器只是ECMAScript实现可能的宿主环境之一。Web浏览器在ECMAScript的基础上再针对浏览器特性提供语言的扩展。其余宿主环境包括Node(一种服务器端JavaScript平台)。
  2. ECMAScript规定了这门语言的(语法、类型、语句、关键字、保留字、操做符、对象)。JavaScript只是实现了ECMAScript标准。
  3. ECMAScript版本:ECMA-262的第5版发布于2009年12月3日。
  4. ECMAScript初版:本质上于NetScape JavaScript1.1相同(只不过删除了全部针对浏览器的代码并作了一些小改动)。ECMA-262要求支持Unicode标准(从而支持多语言开发),并且对象也变成了平台无关的。
  5. ECMAScript第二版:主要是编辑加工的结果。
  6. ECMAScript第三版:是对该标准第一次真正的修改。修改的内容涉及字符串处理、错误定义、数值输出。还增长了正则表达式、新控制语句、try-catch异常处理支持。第三版标志着ECMAScript成为了一门真正的编程语言。
  7. ECMAScript第四版:是对这门语言进行了一次全面的检核修订。第四版不只包含了强类型变量、新语句、新数据结构、真正的类和经典继承,还定义了数据交互的新方式(因为ECMAScript3.1的出现,ECMA-262第四版在正式发布前被放弃)。
  8. ECMAScript第五版(ECMAScript3.1):在第三版澄清第三版已知的歧义并添加了新功能。如:原生JSON对象、继承的方法和高级属性定义,另外还包含一种严格模式。
  9. Web浏览器对ECMAScript的支持。2008年五大主流浏览器所有作到了与ECMA-262兼容。IE8是第一个着手实现ECMA-262第5版的浏览器,并在IE9中提供了完整的支持。下图列出了ECMAScript受主流Web浏览器的支持状况:

2、DOM(Document Object Model,文档对象模型)

DOM是针对XML但通过扩展用于HTML的应用程序编程接口(API)。HTML或XML中的每一个组成部分都是某种类型的节点,这些节点又包含不一样类型的数据。编程

2.一、为何使用DOM

NetScape navigator4和Internet Explorer4分别支持不一样的DHTML(Dynamic HTML)。因为NetScape和微软在开发DHTML各持己见,没法实现只编写一个HTML文件就能在任何浏览器中运行。此时W3C开始规划DOM。浏览器

2.二、DOM级别

  1. DOM1级于1998年10月成为W3C推荐标准。DOM1由DOM核心(DOM Core)和DOM HTML。DOM Core规定如何映射基于XML的文档结构,简化对文档的任意部分的访问和操做。DOM HTML在DOM Core基础上扩展,添加了对HTML的对象和方法。
  2. DOM2级在原来DOM基础上又扩充了(DHTML一直都是支持的)鼠标和用户界面事件、范围、遍历(迭代DOM对象的方法)等细分模块,并且经过对象接口增长了CSS的支持。DOM2引入了DOM视图、DOM事件、DOM样式、DOM的遍历和范围。
  3. DOM3级进一步扩展了DOM,引入了统一方式加载和保存文档的方法(DOM Load and Save)。新增了验证文档的的方法(DOM Validation)。DOM3也对DOM核心进行了扩展,开始支持XML1.0规范,涉及XML Infoset、XPath、XML Base。
  4. Web浏览器对DOM的支持:

3、BOM(Browser Object Model,浏览器对象模型)

NetScape navigator3和Internet Explorer3支持能够访问和操做浏览器窗口的BOM。BOM能够控制浏览器显示页面之外的部分。可是BOM做为JavaScript实现的一部分但没有相关的标准。这个问题在HTML5中获得解决。服务器

3.一、BOM扩展功能

  1.  弹出新浏览器窗口的功能。
  2. 移动、缩放和关闭浏览器窗口的功能。
  3. 提供浏览器详细信息的navigator对象。
  4. 提供浏览器所加载页面的详细信息location对象。
  5. 提供用户显示器分辨率详细信息的screen对象。
  6. 对cookies的支持。
  7. 像XMLHttpRequest和IE的ActiveXObject这样的自定义对象。

4、小结

JavaScript的组成部分:cookie

  • 核心(ECMAScript)
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)在当前五个主流浏览器中都获得了不一样程度支持。其中,全部浏览器对ECMAScript第3版支持上大致不错。尽管各个浏览器都实现了某些众所周知的共同特性,但其余特性仍是会因浏览器而不一样。
相关文章
相关标签/搜索