理解JavaScript的BOM:核心与`window`对象

需积分: 0 0 下载量 95 浏览量 更新于2024-08-04 收藏 26KB MD 举报
"JavaScript 的 BOM操作" 在JavaScript中,BOM(Browser Object Model,浏览器对象模型)是一个非标准但广泛支持的接口,它允许JavaScript与浏览器进行交互,控制和访问浏览器的各种特性,如窗口、导航、历史记录以及文档加载状态等。BOM的核心在于`window`对象,它是JavaScript在Web环境中的全局上下文,同时也代表了一个浏览器窗口。 ### `window`对象 `window`对象是BOM中的核心,它既是JavaScript全局作用域,也是浏览器窗口的抽象。这意味着在JavaScript代码中声明的任何变量、函数或对象都会自动成为`window`对象的属性。例如,如果声明一个全局变量`age`,它实际上就是`window.age`。 ```javascript var age = 29; // 全局变量 ``` 在这个例子中,`age`可以通过`window.age`来访问,因为它已经成为`window`对象的一部分。同样的,全局函数也可以作为`window`对象的方法来调用: ```javascript function sayAge() { console.log(this.age); } sayAge(); // 调用全局函数 window.sayAge(); // 同样有效 ``` ### 全局作用域与`window`对象 由于`window`对象的全局性,所有在全局作用域中声明的变量和函数都可视为`window`对象的成员。然而,这并不意味着它们之间完全相同。例如,全局变量无法通过`delete`运算符删除,而`window`对象的直接属性可以: ```javascript var age = 29; // 不能删除的全局变量 window.color = "red"; // 可以删除的window属性 delete window.age; // 在非IE9以下的IE浏览器中会抛错,其他浏览器返回true delete window.color; // 返回true console.log(window.age); // 依然存在 console.log(window.color); // undefined ``` ### `window`对象的其他属性和方法 - `document`:表示当前加载的HTML文档,提供了操作DOM的能力。 - `location`:包含了当前页面的URL信息,可以用来导航到其他页面或更改当前页面的URL。 - `history`:允许用户在浏览器的历史记录中前进和后退。 - `navigator`:提供了有关用户浏览器的信息,如名称、版本等。 - `screen`:提供了有关用户屏幕的信息,如分辨率、颜色深度等。 - `setTimeout`和`clearTimeout`:用于设置延迟执行的函数和取消已设置的延迟执行。 - `setInterval`和`clearInterval`:用于周期性执行函数和取消已设置的周期执行。 BOM的这些特性使得JavaScript能够实现诸如弹窗、页面跳转、定时器、浏览器检测等功能。虽然BOM在不同浏览器之间存在差异,但随着HTML5规范的推广,许多核心BOM特性已经被标准化,降低了跨浏览器开发的复杂性。