1. 简介
ECMAScript是JavaScript的核心,但是如果要在WEB中使用JavaScript,那么BOM则无疑才是真的的核心。BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。BOM没有标准,各浏览器厂商间定义的公共对象,可以作为事实上的标准存在。W3C在HTML5中把BOM纳入了规范中。
2. window对象
window对象:表示浏览器的一个实例。window的双重角色:通过JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象,所有在全局作用域中声明的变量、函数都会变成window对象的属性和方法。与直接在window对象上定义属性和方法的区别在于删除操作:window对象上定义的可以delete,全局变量不可以被删除。
// 1. 全局变量为window对象的属性和方法 var age = 29; function sayAge() { console.log(this.age); } window.age; // 29 window.sayAge(); // 29 // 2. 全局变量不可删除, window对象的属性和方法可以被删除 window.color = 'red'; delete window.age; delete window.color; window.age; // 29, 不可删除 window.color; // undefined,可被删除 // 3. 访问全局对象未定义值会抛出异常,访问window属性不会 var newValue = oldValue; // 抛出异常 var newValue = window.oldValue; // undefined
很多全局JavaScript对象(如:location, navigator等)都是window对象的属性。
3. location对象
tbd
4. navigator对象
tbd
5. screen对象
tbd
6. history对象
tbd
7. 总结
tbd