浏览器里的JavaScript
ECMAScript 标准并没有提供网页的操作方法。前端开发者在网页的操作方法都是由JavaScript的执行平台(浏览器)提供的。这些操作方法基本上会分别由这两种对象所拥有:BOM与DOM。
**BOM(Browser Object Model,浏览器对象模型),**是浏览器所有功能的核心,与网页的内容无关。BOM的核心是window对象,window对象提供的属性主要为document、location、navigator、screen、history以及frames。
在浏览器中的window对象会扮演两种角色:
- ECMAScript 标准里的全局对象 (Global Object)
- JavaScript 用来与浏览器沟通的窗口
1、全局对象
凡是在全局作用域内声明的变量、对象、函数等,都会自动变成全局对象的属性。通常这样的变量,我们会称它们叫做全局变量,可以通过window.xxx的方式取得它们。在全局作用域内声明的全局变量无法使用delete关键字来移除,但是若是直接通过制定window对象则可以用delete删除。
var a = 10;
console.log( window.a ); // 10
console.log(delete window.a); // false
console.log( window.a ); // 10
window.a = 10;
console.log( window.a ); // 10
console.log(delete window.a); // true
console.log( window.a ); // undefined
2、浏览器内建的对话框
警告对话框window.alert()、提供确定/取消的window.confirm()、开放式问答的window.prompt()对话框、还有开启/关闭视窗,改变视窗大小,计时器与取得网址等等,都是BOM提供的API。
DOM(Document Object Model,文件对象模型),是一个将HTML文件以树状的结构来表示的模型,而组合起来的树状图,我们称之为DOM Tree。
在节点树中,一个节点就是一个标签,往下又可以再延伸出文本节点与属性的节点。DOM API 就是定义了让JavaScript 可以存取、改变HTML 结构、样式和内容的方法,甚至是对节点绑定的事件。