javascript 学习一

JavaScript :脚本语言

诞生于1995年。

原名LiveScript ,发布前夕正赶上媒体热炒Java,遂更名。

javascript 1.0(发布于Netscape Navigator 2)1996年3月

布兰登·艾奇(Brendan Eich,1964年~),JavaScript的发明人,目前(2007年)在Mozilla公司担任首席技术长(Chief Technology Officer)。

 ——————————————————————————————————————

1. Netscape Navigator 3 中发布了javascript1.1

2. 不久,IE3中微软加入了JScript(javascript)1996年8月

 两个不同javascript版本使标准化问题提上了日程。

1997年,欧洲计算机制造商协会(ECMA,European Computer Manufacturers Association)的39号技术委员会(TC39,Technical Committee #39)

完成了ECMA-262标准1997年6月,定义了脚本语言标准ECMAScript),目前已更新第五版(2009年12月

  ECMAScript 不包含输入和输出的定义。但规定了语法,类型,语句,关键字,保留字,操作符,对象。

以之为基础可构建完善规范的脚本语言。 如javascript,actionscript。它们与 ECMAScript相容,但都进行了扩展。

------------------------------------------------------------------------------------

JavaScript,除ECMAScript(核心),还包含DOM(document object model),BOM(browser object model)。

   DOM:

   是针对XML但经过扩展用于HTML的API(application programming interface)。

将整个页面映射为一个多层节点结构,页面中每个部分都是某种类型的节点,节点内包含不同类型的数据。借此可以轻松自如地访问和操作改变 HTML、XHTML 以及 XML 文档中的每一个单独的元素

 由于IE4和 Netscape Navigator 4 分别支持不同形式的DHTML,W3C规划了DOM标准

W3C DOM 标准被分为 3 个不同的部分:
  1. 核心 DOM - 针对任何结构化文档的标准模型
  2. XML DOM - 针对 XML 文档的标准模型,义了所有 XML 元素的对象和属性,以及访问它们的方法(接口)
  3. HTML DOM - 针对 HTML 文档的标准模型, 定义了所有 HTML 元素的对象属性,以及访问它们的方法

DOM将整个页面映射为一个由层次节点组成的文件。有1级、2级、3级共3个级别。

  1级DOM

  1级DOM在1998年10月份成为W3C的提议,由DOM核心与DOM HTML两个模块组成。DOM核心能映射以XML为基础的文档结构,允许获取和操作文档的任意部分。DOM HTML通过添加HTML专用的对象与函数对DOM核心进行了扩展。

  2级DOM

1级DOM仅以映射文档结构为目标,DOM 2级面向更为宽广。通过对原有DOM的扩展,2级DOM通过对象接口增加了对鼠标和用户界面事件(DHTML长期支持鼠标与用户界面事件)、范围、遍历(重复执行DOM文档)和层叠样式表(CSS)的支持。同时也对DOM 1的核心进行了扩展,从而可支持XML命名空间。
2级DOM引进了几个新DOM模块来处理新的接口类型:
DOM视图:描述跟踪一个文档的各种视图(使用CSS样式设计文档前后)的接口;
DOM事件:描述事件接口;
DOM样式:描述处理基于 CSS样式的接口;
DOM遍历与范围:描述遍历和操作文档树的接口;
javascript 学习一
3级DOM
3级DOM通过引入统一方式载入和保存文档和文档验证方法对DOM进行进一步扩展,DOM3包含一个名为“DOM载入与保存”的新模块,DOM核心扩展后可支持XML1.0的所有内容,包扩XML Infoset、 XPath、和XML Base。

"0级"DOM

当阅读与DOM有关的材料时,可能会遇到参考0级DOM的情况。需要注意的是并没有标准被称为0级DOM,它仅是DOM历史上一个参考点(0级DOM被认为是在Internet Explorer 4.0 与Netscape Navigator4.0支持的最早的DHTML)。

 

节点

根据 DOM,HTML 文档中的每个成分都是一个节点。
DOM 是这样规定的:
整个文档是一个文档节点
每个 HTML 标签是一个元素节点
包含在 HTML 元素中的文本是文本节点
每一个 HTML 属性是一个属性节点
注释属于注释节点

Node 层次

节点彼此都有等级关系。
HTML 文档中的所有节点组成了一个文档树(或节点树)。HTML 文档中的每个元素、属性、文本等都代表着树中的一个节点。树起始于文档节点,并由此继续伸出枝条,直到处于这棵树最低级别的所有文本节点为止。
下面这个图片表示一个文档树(节点树):

 javascript 学习一

当节点分享同一个父节点时,它们就是同辈(同级节点)

节点也可以拥有后代,后代指某个节点的所有子节点,或者这些子节点的子节点,以此类推。比方说,所有的文本节点都是 <html>节点的后代

节点也可以拥有先辈。先辈是某个节点的父节点,或者父节点的父节点,以此类推。比方说,所有的文本节点都可把 <html> 节点作为先辈节点。

document.getElementById("ID");注释:getElementById() 无法工作在 XML 中。在 XML 文档中,您必须通过拥有类型 id 的属性来进行搜索,而此类型必须在 XML DTD 中进行声明。

document.getElementsByTagName("p");

document.getElementById('maindiv').getElementsByTagName("p");

parentNode、firstChild以及lastChild

DOM的优势主要表现在:易用性强,使用DOM时,将把所有的XML文档信息都存于内存中,并且遍历简单,支持XPath,增强了易用性。

DOM的缺点主要表现在:效率低,解析速度慢,内存占用量过高,对于大文件来说几乎不可能使用。另外效率低还表现在大量的消耗时间,因为使用DOM进行解析时,将为文档的每个element、attribute、processing-instrUCtion和comment都创建一个对象,这样在DOM机制中所运用的大量对象的创建和销毁无疑会影响其效率。

--------------------------------------------------------------------------------------------

BOM: 

BOM主要处理浏览器窗口与框架,但事实上,浏览器特有的JavaScript扩展都被认作是BOM的一部分
这些扩展包括:
1. 弹出新 浏览器窗口的能力;
2. 移动、关闭和更改浏览器窗口大小的能力;
3. 可提供WEB浏览器详细信息的导航对象;
4.可提供浏览器载入页面详细信息的本地对象;
5 .可提供用户屏幕分辨率详细信息的屏幕对象;
6. 支持Cookies;
7. Internet Explorer对BOM进行扩展以包括ActiveX对象类,可以通过JavaScript来实现ActiveX对象。
由于BOM没有相关标准,每个浏览器都有其自己对BOM的实现方式。BOM有窗口对象、导航对象等一些实际上已经默认的标准,但对于这些对象和其它一些对象,每个浏览器都定义了自己的属性和方式。

 

 

 

 

 

你可能感兴趣的:(JavaScript)