虽然 ECMAScript 把浏览器对象模型(BOM,Browser Object Model)描述为 JavaScript 的核心,但 BOM 是使用 JavaScript 开发 Web 应用的核心。BOM 提供了与网页无关的浏览器功能对象。
window 对象
BOM 的核心当然是 window 对象,注意的是 window 对象是在浏览器中才有的,不然 BOM 的 “B” 就没有意义了。window 是 ECMAScript 的 Global 对象,也是浏览器窗口的 JavaScript 接口,这意味着网页中定义的所有对象、变量和函数都以 window 作为 Global 对象,都可以访问其上定义的全局方法
一起看看window 下的挂载的属性
(直接在 google 开发工具的 Console 下输入 window 回车)
Global 作用域
window 对象是 ESCAScript 的 Global 对象, 所有通过 var 声明的所有全局变量和函数都会变成 window 对象的属性和方法 值得注意的是 let 和 const 声明的变量 不会挂载 到 window 全局对象下
window 窗口大小
众所周知,你要想在不同的浏览器中确定浏览器窗口大小并没有想象中的那么容易(这是因为早期的浏览器之间相互竞争产生的恶果,所以才有W3C的产生)、但现在浏览器都支持innerWidth、innerHeight、outerWidth、outerHeight; outerWidth、outerHeight返回浏览器窗口自身的大小(不管是在window上使用还是在frame标签中使用) innerWidth、innerHeight 返回浏览器窗口中页面视口的大小(不包含浏览器边框和工具栏)