对完整JavaScript的理解,ECMAScript 、DOM、BOM

一个完整的JavaScript 脚本实现应包含如下三部分:(以下均摘抄自网络)
1、 ECMAScript 核心:为不同的宿主环境提供核心的脚本能力;
(1)什么是ECMAScript?ECMAScript就是对实现该标准规定的各个方面内容的语言的描述。
(2)ECMAScript和JavaScript的关系?前者是后者的规格(标准),后者是前者的一种实现。
(3)ECMA-262定义的ECMAScirpt和浏览器是没有依赖关系的。也就是说,web浏览器只是它的宿主环境之一。它规定了这门语言的核心组成部分:
语法、类型、语句、关键字、保留字、操作符、对象
JavaScript和AdobeActionScript、OpenView 的ScriptEase都是对ECMAScirpt的一种实现。

2、 DOM(文档对象模型):规定了访问HTML 和XML 的应用程序接口;
为什么要使用DOM?
DOM的历史可以追溯至1990年代后期微软与Netscape的“浏览器大战”,双方为在JavaScript与JScript一决生死,于是大规模的赋予浏览器强大的功能。微软在网页技术上加入了不少专属事物,计有VBScript、ActiveX、以及微软自家的DHTML格式等,使不少网页使用非微软平台及浏览器无法正常显示。这个时候万维网联盟出来了,说我来制定一个统一的标准,你们浏览器按照这个标准来,这样一个页面在不同的浏览器就都能正常显示了,比方说W3C定义了 这个标识符是存放图片的,chrome,ie,火狐..等等浏览器内核就将定义成显示图片,要是没有W3C制定标准,每个浏览器对图片定义不同的标签,那针对每个浏览器要写不同的代码,这个肯定是行不通的;
3、 BOM(浏览器对象模型):提供了独立于内容而在浏览器窗口之间进行交互的对象和方法。
(1)BOM提供了独立于内容而与浏览器窗口进行交互的对象
(2)由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window
(3)BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性
(4)BOM缺乏标准,JavaScript语法的标准化组织是ECMA,DOM的标准化组织是W3C(WHATWG,WebHypertextApplicationTechnologyWorkingGroup——网页超文本应用程序技术工作组目前正在努力促进BOM的标准化)
(5)BOM最初是Netscape浏览器标准的一部分


浏览器与JavaScript的关系?
浏览器对ECMAScript的接口就是ECMAScript所规定的那些语法标准,你按照ECMAScript语法标准所写的东西,就涉及上面的问题,浏览器要能够把它解释执行出来。这ECMAScript本身并没有具体的统一的实现和实体,要由浏览器厂商完成。这就好像规定了一个标准的进销存管理系统应该有哪些必须的功能,然后各个软件公司自己编写实现。所谓的扩展,就是这些公司出于各种考虑而在基本功能之外,另外增加的一些功能。比如IE有自己的滤镜和ACTIVEX机制等,而FF,CHROME也有一些自己的东西。当你针对它们编程时,可以使用那些特性,但对象改变了,就会失效或出错。常说的脚本兼容就是指这些标准化以外的东西。

你可能感兴趣的:(JavaScript)