Javascript最早是由Netscape开发,用于客户端验证的.随着业界对这一发展的肯定,Microsoft和CEnvi都有自己的ScriptEase.由于标准的不统一,使得大家对JavaScript的发展非常担心.1997年,Javascript提交ECMA.并最终形成标准ECMAScript.后来ISO/IEC接纳了ECMAScript作为国际标准.

   尽管ECMAScript是一个重要的标准,但它并不是Javascirpt唯一的部分. 当然, 也不是唯一被标准化的部分. 实际上,一个完整的javasciript实现由3个不同部分组成:1. 核心.(ECMAScript) 2.文档对象模型(DOM) 3.浏览器对象模型(BOM)

   下面对这三个部分进行简单的说明:

   1. ECMAScript.ECMAScript并不与任何具体浏览器相绑定, 实际上, 它也没有提到用于任何用户输入输出的方法. ECMA-262的标准描述如下:

ECMAScript可以为不同种类的宿主环境提供核心的脚本编程能力, 因此核心的脚本语言是与任何特点的宿主环境分开进行规定的....

Web浏览器对于ECMAScript来说是一个宿主环境, 但它并不是唯一的宿主环境. 比如Macromedia的Flash与Director MX中的ActionScript都可以容纳ECMAScript的实现. ECMAScript在浏览器之外定义了如下内容:
1. 语法. 2. 类型.3. 语句.4.关键字.5.保留字.6. 运算符. 7. 对象.
ECMAScript仅仅是一个描述, 定义了脚本语言的所有属性,方法和对象.其他的语言可以实现ECMAScript来作为功能的基准. 每个浏览器都有它自己的ECMAScript接口的实现,然后这个实现又被扩展, 包含了BOM和DOM.

   2. DOM DOM是Html和XML的应用程序接口(API).  DOM将把整个页面规划成又节点层级构成的文档. DOM通过创建树来表示文档, 从而使开发者对于文档的内容和接口有了空前的控制力.

DOM由W3C组织制定.目前有3个Level.
Level1 包括2个不封Core和Html. Core部分提供了基于XML的文档结构图, 以方便访问和操作文档的任意不封. Html添加了一些html的专有方法和属性. Level1的目标只有一个那就是规范文档的结构.
Level2 对原始DOM的扩展添加了对鼠标和用户界面事件,范围,遍历的支持, 并通过对象接口,添加了对CSS的支持.
Level3引入了以统一的方式载入和保存文档的方法以及验证文档的方法, 从而进一步扩展了DOM. DOM Core被拓展完全支持所有的XML 1.0特性.

除了DOM Core 和Dom Html外,还有其它几种语言都发布了自己的DOM标准. (SVG, MathML, SMIL)

IE 5.5 开始支持DOM Level1. Mozilla具有最好的DOM支持, 完整的Level1,几乎所有的Level2和部分Level3. Opera和Safari和IE都处在Level1的水平.

   3. BOM . BOM没有任何的标准, 只是Javascript实现的一部分, 和特点的浏览器相关. BOM主要处理浏览器窗口和框架, 浏览器特定的javascript实现都被当作是BOM的一部分. 这些扩展包括: 弹出新的浏览器窗口, 移动和关闭以及调整窗口大小. cookie支持, IE中的ActiveXObject.