文章部分内容及图片出自网络,如有问题请与我本人联系(主页介绍中有公众号)
本博客暂适用于刚刚接触JS
以及好久不看想要复习的小伙伴。
下述内容所属本专栏系列-第八部分 BOM
在实际开发中,使用 JavaScript 开发 Web 程序时,经常需要对浏览器进行访问及其他的操作,实现浏览器与页面之间的动态交互效果。为此,BOM 提供了很多用于访问浏览器的对象。本节将详细讲解 BOM 的组成。
浏览器对象模型 ( Brower Object Model, BOM ) 提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 window。
BOM 由一系列相关的对象构成,并且每个对象都提供了很多方法和属性。但是 BOM 缺乏标准,JavaScript 语法的标准化组织是 ECMA,DOM 的标准化组织是 W3C ,而 BOM 最初是 Netscape 网景浏览器标准的一部分。
DOM 是文档对象模型,把文档当作一个对象来看待, 它的顶级对象是 document,我们主要学习的是操作页面元素。DOM 是 W3C 标准规范。
BOM 是浏览器对象模型,是把浏览器当作一个对象来看待, 它的顶级对象是 window,我们主要学习的是浏览器窗口交互的一些对象。BOM 是浏览器厂商在各自浏览器上定义的,兼容性较差。
BOM 提供了很多的对象。这些对象用于访问浏览器,被称为浏览器对象。各内置对象之间按照某种层次组织起来的模型统称为浏览器对象模型,
BOM 的构成
从图中可以看出,BOM 比 DOM 更大,它包含 DOM ( doumemt ),BOM 的核心对象是 window ,其他的对象称为 window 的子对象,它们是以属性的方式添加到 window 对象中的。window 对象是浏览器顶级对象,具有双重角色,既是 JavaScript 访问浏览器窗口的一个接口,又是一个全局对象,定义在全局作用域中的变量、函数都会变成 window 对象的属性和方法。示例代码如下:
<script>
// 全局作用域中的变量是window对象的属性
var num = 10;
console.log (num);
// 结果为: 10
console.log (window.num);
// 结果为: 10
// 全局作用城中的函数是window对象的方法
function fn() {
console.log(11);
}
fn(); // 结果为: 11
window.fn();// 结果为: 11
</script>
在前面的知识中,之所以省略 var 也可以直接为一个未声明的变量赋值,是因为这个变量自动转换为了 window 对象的属性。前面学习的 alert()、 prompt() 实际上都属于 window 对象的方法,在调用的时候省略了前面的 " window. " 。 由于 window 对象中本来就有一个 name 属性,所以在全局作用域下声明的变量不推荐使用 name 作为变量名,以避免和 window 对象的 name 属性冲突。
今日入门学习暂时告一段落
Peace
作者:请叫我阿ken