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

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

1.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.2、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浏览器的支持情况:

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

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

2.1、为什么使用DOM

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

2.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的支持:

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

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

3.1、BOM扩展功能

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

四、小结

JavaScript的组成部分:

  • 核心(ECMAScript)
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)在当前五个主流浏览器中都得到了不同程度支持。其中,所有浏览器对ECMAScript第3版支持上大体不错。尽管各个浏览器都实现了某些众所周知的共同特性,但其他特性还是会因浏览器而不同。

转载于:https://my.oschina.net/tianshuo/blog/732008

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值