BOM的核心對象是window,它表示瀏覽器的一個實例。它便是經過javascript訪問瀏覽器窗口的一個接口,也是ECMAScript規定的Global對象。javascript
因爲window對象同時是Global對象,所以全部在全局做用域中聲明的變量、函數會變成window對象的屬性和方法。如:前端
var age = 29;
function test() {
console.log(this.age);
}
console.log(window.age) // 29
test() // 29
window.test() // 29
複製代碼
定義全局變量與window對象上直接定義屬性的區別:全局變量不能經過delete操做符刪除,而直接在window對象上的定義的屬性能夠.如:java
var age = 29;
window.color = 'red';
// 在ie < 9時拋出錯誤,在其餘瀏覽器中返回false
delete window.age;
// 在ie < 9時拋出錯誤,在其餘瀏覽器中返回true
delete window.color // true
window.age; // 29
window.color; // undefined
複製代碼
嘗試訪問未聲明的變量會拋出錯誤,但經過查詢window對象,能夠知道某個可能未聲明的變量是否存在。如:瀏覽器
// 這裏拋出錯誤,由於old未定義
var curr = old;
// 這裏不會拋出錯誤,由於這是一次屬性查詢
var val = window.oldVal;
複製代碼
若有侵權,請發郵箱至wk_daxiangmubu@163.com 或留言,本人會在第一時間與您聯繫,謝謝!! bash