JavaScript 简史
1.1 javascript简史
在web日益流行的今天,人们对客户端脚本语言的需求也越来越高。
1995.2 就职于网景公司的brendan eich发布了其开发的livescript,改语言同时在浏览器和服务器使用。为了赶工期,在netscape navigator 2发布前夕,netscape为了搭上媒体热炒java的顺风车,临时把livescript改成了javascript.
发布大获成功,之后,微软就在其internet explore 3.0中加入名为jscript的javascript实现。
当时缺少标准的状况下,导致了个厂商对于实现javascript特性的差异性,并影响了web发展的道路曲折了十几年,事实证明对于世界性开发语言最终还是要有统一的标准,闭门造车是要付出沉痛代价——时间成本。
1997年,以javascript 1.1 为蓝本的建议被提交给了欧洲计算机制造商会(european computer manufactures association, 简称 ecma),经过几个月的努力完成了 ecma-262——定义了一种名为ecmascript的新的脚本标准。
1.2 javascript 实现
一个完整的javascript事先应该有下列三个部分组成:
- 核心 [ecmascript]
- 文档对象模型 [dom]
- 浏览器对象模型[bom]
1.2.1 ecmascript
由 ecmascript-262定义的ecmascript与web浏览器没有依赖关系。并没有包含输入和输出定义。它只定义了语言基础,我们常见的web浏览器只是ecmascript实现可能的宿主环境之一。其他宿主环境包括 node 和 adobe flash。它规定了以下内容:
- 语法
- 类型
- 语句
- 关键字
- 保留字
- 操作符
- 对象
1.2.2 文档对象模型(dom)
文档对象模型(dom)是针对xml,但经过扩展用于html的应用程序编程接口。dom把整个页面映射为一个多层节点结构。html或xml页面中的每个组成部分都是某种类型的节点。
<html> <head> <title>gruguy example</title> </head> <body> <p>hello world</p> </body> </html>
1. 为什么要使用dom
微软和网景支持不同的形式的dhtml,过去只编写一个html页面就能够在任何浏览器中运行的时代结束了。 此时,负责制定web通信标准w3c(world wide website consortium 万维网联盟)开始着手规划dom
2. dom级别
dom1级(dom level1)于1998.10成为了w3c的推荐标准。dom1有两个模块组成,dom核心(core)和 dom html。dom核心规定了如何映射基于xml的文档结构,以简化对文档中任意部分访问和操作。dom html模块规定在核心基础上加以扩展,添加了针对html的对象和方法。
dom2级引入了新的模块,定义了新的接口方法
- dom视图(dom view): 定义了跟踪不同文档视图的接口;
- dom时间(dom events):定义了事件和事件处理的接口;
- dom样式(dom style):定义了基于css为元素应用样式的接口;
- dom遍历和范围(dom traversal and range):定义了遍历和操作文档树的接口。
dom3级则进一步扩展了dom,引入了以统一方式加载和保存文档的方法——在dom加载和保存(dom load and save)模块中定义,新增文档验证的方法——dom验证(dom validation)模块中定义。dom3级也对dom核心扩展,开始支持xml1.0规范,设计xml infoset、xpath和xmlbase。
3. 其他dom标准
略
4. web浏览器对dom的支持
标准制定后,过了一段时间,web浏览器才开始支持。微软首先在ie5中实现了dom,但直到ie5.5才算是真正支持了dom1级。netscape后来重心放在了firefox上,firefox 3完全支持dom1,几乎完全支持dom2,还有一部分dom3,目前,主流的浏览器都支持了dom标准。
1.2.3 浏览器对象模型
bom始于web浏览器的实现,对于操作浏览器对象模型,但是没有标准,直到html5,将很多bom功能写进正式规范。
- 弹出新浏览器窗口的功能
- 移动、缩放和关闭浏览器窗口功能
- 提供浏览器详细信息的navigator对象
- 提供浏览器所加载页面的详细信息的location对象
- 提供用户显示器分辨率详细信息screen对象
- 提供cookies的支持
- 像 xmlhttprequest 和ie的 activexobject 这样的自定义对象
上一篇: 多么温馨的提示
推荐阅读
-
jsp脚本、jsp声明、jsp输出表达式、javascript、jsp标签、struts2标签
-
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
-
vs2008 JavaScript 语法提示(Intellisense)功能
-
JavaScript中的浅拷贝与深拷贝-前端爬坑-SegmentFault思否
-
JavaScript作用域链
-
JavaScript设计模式精华摘抄(持续更新...)-考拉阅读前端团队-SegmentFault思否
-
Javascript之常见算法整理(持续更新)-柠檬味的前端-SegmentFault思否
-
JavaScript数据类型总结
-
JavaScript错误处理操作实例详解
-
JavaScript代码调试方法实例小结