BOM和DOM

236 阅读2分钟

BOM

一、window对象

BOM的核心对象是 window,它表示浏览器的一个实例。在浏览器中,window 对象有双重角色,它既是通过 JavaScript 访问浏览器窗口的一个接口,又是 ECMAScript 规定的 Global 对象。这意味着在网页中定义的任何一个对象、变量和函数,都以 window 作为其 Global 对象,

1.全局作用域

由于 window 对象同时扮演着 ECMAScriptGlobal 对象的角色,因此所有在全局作用域中声明的变量、函数都会变成 window 对象的属性和方法。

var age = 29; 
function sayAge(){ 
 alert(this.age); 
} 
alert(window.age); //29 
sayAge(); //29 
window.sayAge(); //29

定义全局变量与在 window 对象上直接定义属性还是有一点差别:全局变量不能通过 delete 操作符删除,而直接在 window 对象上的定义的属性可以。例如:

var age = 29; 
window.color = "red"; 
//在 IE < 9 时抛出错误,在其他所有浏览器中都返回 false 
delete window.age; 
//在 IE < 9 时抛出错误,在其他所有浏览器中都返回 true 
delete window.color; //returns true 
alert(window.age); //29 
alert(window.color); //undefined

2.location对象

提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能。window.locationdocument.location 引用的是同一个对象。location 对象不仅保存着当前文档的信息,还将 URL 解析为独立的片段。

DOM扩展

一、选择符API

1.querySelector()方法

querySelector()方法接收一个 CSS 选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回 null

2.querySelectorAll()方法

querySelectorAll()方法接收的参数也是一个 CSS 选择符,但返回的是NodeList 的实例。

二、元素遍历

DOM 元素添加了以下 5 个属性。

childElementCount:返回子元素(不包括文本节点和注释)的个数。

firstElementChild:指向第一个子元素;firstChild 的元素版。

lastElementChild:指向最后一个子元素;lastChild 的元素版。

previousElementSibling:指向前一个同辈元素;previousSibling 的元素版。

nextElementSibling:指向后一个同辈元素;nextSibling 的元素版。