少侠学代码系列(二)->JS实现
少侠:小子,休息好了没,赶紧的
帅气的我:好了好了,嚷什么
少侠:(拔刀)嗯?
帅气的我:少侠,淡定淡定,我们来看秘籍吧,刚刚我们说了JS实现是由三个部分组成的
核心(ECMAScript),文档对象模型(DOM),浏览器对象模型(BOM)
我们挨着看一下这三个的含义
ECMAScript:由ECMA-262定义的ECMAScript定义的ECMAScript和Web浏览器没有关系,实际上,这门语言并不包含输入输出定义,ECMA-262定义的只是这门语言的基础,而在此基础上可以构建出更完善的脚本语言,我们常见的web浏览器只是ECMAScript实现可能的宿主环境之一,宿主环境不仅提供基本的ECMAScript实现,同时也会提供该语言的扩展,以便语言与环境间对接交换,而这些扩展---如DOM,则利用ECMAScript的核心类型和语法提供更多更具体的功能,以便实现针对环境的操作,其他的宿主环境包括Node和Adobe Flash,既然ECMA-262没有参照web浏览器,那他规定了什么呢,大致来说,它规定了以下部分:
语法
类型
语句
关键字
保留字
操作符
对象
文档对象模型(DOM):是针对XML但经过扩展用于HTML的应用编辑程序接口(API),DOM把整个页面映射成一个多层节点结构,HTML或者XML页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。
为什么使用DOM?在IE4和Netscape Navigator 4分别支持不同形式DHTML的基础上,开发人员首次无需重新加载网页就可以修改外观和内容了,但是由于Netscape和微软在开发DHTML方面各持己见,过去那个只需要编写一份HTML页面就可以在所有浏览器运行的时代结束了,为了解决两强割据的局面,负责指定web通信标准的W3C(万维网联盟)开始着手规划DOM
DOM级别:
DOM1级:DOM1级于1998年10月成为W3C的推荐标准,DOM1级由DOM核心(DOM Core)和DOM HTML组成,DOM核心规定的是如何映射基于XML的文档结构,以便简化对文档任意部分的访问和造作,DOM HTML模块则在DOM核心的基础上加以扩展,添加了针对HTML的对象和方法(注意:DOM并不是只针对JS,很多别的语言也实现了DOM)
DOM2级:DOM2级在原有DOM的基础上又添加了鼠标和用户界面事件,范围,遍历等细分模块,而且通过对象接口增加了对CSS的支持,DOM1级中的DOM核心模块也经过扩展开始支持XML命名空间,DOM2级引入了一下新模块:
DOM视图:定义了跟踪不同文档视图的接口
DOM事件:定义了事件和事件处理的接口
DOM样式:定义了基于CSS为元素应用样式的接口
DOM遍历和范围:定义了遍历和操作文档树的接口
DOM3级:进一步扩展了DOM,引入了统一方法加载和保存文档的方法---在DOM加载和保存模块中定义,新增了验证文档的方法--在DOM验证模块中定义,扩展了核心,开始支持XML1.0规范
其他DOM标准:除了DOM核心和DOM HTML接口外,另外几种语言也发布了针对自己的DOM标准,下面列出的语言都是基于XML的,每种语言的DOM标准都添加了与特定语言相关的新方法和新接口:
SVG(可伸缩矢量图)
MathML(数学标记语言)
SMIL(同比多媒体集成语言)
还有一些浏览器也开发了自己的DOM实现,例如Mozilla的XUL(用户界面语言),但是只有上面列出的几种语言是W3C推荐标准
浏览器对象模型(BOM):BOM只处理浏览器窗口和框架,但人们习惯上也把所有针对浏览器的JavaScript扩展算做BOM的一部分,下面列一下这些扩展
弹出新浏览器窗口的功能
移动,缩放,和关闭浏览器窗口的功能
提供浏览器详细信息的navigator对象
提供浏览器锁加载页面的详细信息的location对象
提供用户显示器分辨率详细信息的screen对象
对cookie的支持
像XMLHttpRequest和IE的ActiveXObject这样自定义对象
帅气的我:少侠,我困了,能睡一会吗
少侠:真是懒驴上磨屎尿多,去睡吧,准了
帅气的我:好嘞