JavaScript的基础组成部分
1.核心(ECMAScript)
2.文档对象模型(DOM)
3.浏览器对象模型(BOM)
(1)BOM
1)BOM是浏览器对象模型,和浏览器关系密切,用来获取或设置浏览器的属性、行为,如新建窗口、打开新选项卡(标签页)、关闭页面、把网页设为主页、加入收藏夹、获取屏幕分辨率、浏览器版本号等。
2)BOM没有相关标准。由于没有标准,不同的浏览器实现同一功能,可以需要不同的实现方式,不同的浏览器的实现功能所需要的JavaScript代码可能不相同。
3)BOM是由navigator、history、screen、location、window五个对象组成的,最根本对象是window。
内置对象总结:
1.window对象:BOM的核心对象是window,它表示浏览器的一个实例
window的主要属性:
window的主要方法:
2.location对象:提供了与当前窗口中加载的文档有关的信息,还有一些导航功能,值得注意的是location既是window对象的属性,又是document对象的属性,既window.location和document.location 引用的是同一个对象
window.location ="http://www.666.com"; //页面跳转到该网址
location.href ="http://www.666.com"; //页面跳转到该网址
location.assign("http://www.666.com"); //页面跳转到该网址
前两种方法其实底层也是调用了location.assign(),即三者结果是一样的。
注:这三种方法跳转之后可以通过后退按钮返回到跳转之前的页面。
location.replace("http://www.666.com"); //页面跳转到该网址,跳转之后不可返回前一页面
3.navigator对象:该对象里面保存着浏览器的各种信息,判断浏览器的各种信息就是从该对象里的属性来读取.
4.history对象:该对象保存着用户上网的历史记录,从窗口被打开的那一刻算起。出于安全考虑,开发人员不能知道用户浏览过的网址的具体url,但是我们可以通过下面方法在不知道具体历史url的情况下控制用户页面前进或后退。
history.go(-1); //页面后退一页
history.go(1); //页面前进一页
history.go("666"); //跳转到距当前页面最近的包含666字符串的页面,可能前进可能后退。
//下面这两个方法对应history.go()的前进和后退。
history.back(1); //后退一页
history.forward(1) //前进一页
2、DOM
1)DOM是文档对象模型,HTML 和 XML 的应用程序接口(API),用来获取或设置文档中标签的属性,和文档有关,这里的文档指的是网页,也就是HTML文档。网页是由服务器发送给客户端浏览器的,无论用什么浏览器,接收到的HTML都是一样的,所以DOM和浏览器无关,它关注的是网页本身的内容。
2)DOM是W3C的标准。
3)DOM最根本对象是document(实际上是window.document)
4) DOM是一种基于树的API文档,它要求在处理过程中整个文档都表示在存储器中
主要的接口有:
1):Node接口:它是文档中节点的基类型。定义了基本的访问和改变文档结构的方法。
2):Document接口:它代表整个文档。可创建文档中的各种节点(元素、注释、处理指令等),创建的节点中带有一个OwnerDoculnent属性表示创建它们的Document对象。
3):DocumentFragment接口:它代表文档树的子树,相当一个小型文档。
4):Attr接口:它代表元素节点的属性。有意思的是它并不认为是该元素节点的子节点,不构成DOM树的一部分。同时也不是DocumentFragment节点的直接子节点。
5):CharacterData接口:它维护了DOMsitrgn字符串并提供读写操作的接口。但不直接对应文档的某种类型节点。
6):Text接口:它从CharacterData继承而来。代表元素或属性的一段连续的文本内容。它有一个派生的接口CDATAsection,目的是:CDATASeciton节点的内容将不会作任何转化;使用Node中的nomraliez方法时相邻的Text节点会合并成一个节点,但使用CDATASeciton可避免合并。
7):Comment接口:它也从CharacterData继承而来。代表注释中的文本内容。
8):NodeList接口:用于管理有序的节点集。
9):Entity接口:它代表实体;EntityReference代表实体的引用。
10):NamedNodeMap接口:用于管理无序的节点集。
11):DOMImplementation接口:它提供与DOM模型的实例无关的接口。CreateDocument可创建一个Document对象;haseFature可判断DOM实现是否支持某一模块。
12):Notation接口:它代表文档中的符号定义。
13):ProcessingInstruction接口:它代表处理指令。
14):DOMException接口:异常处理。由于程序中的逻辑错误、数据丢失或DOM实现本身不稳定引起的错误。在程序处理过程中,由方法返回一个错误值。