认识BOM?
javaScript有一个非常重要的运行环境就是浏览器,而且浏览器本身又作为一个应用程序需要对其本身进行操作,所以通常浏览器会有对
应的对象模型(BOM,Browser Object Model)。
我们可以将BOM看成是连接JavaScript脚本与浏览器窗口的桥梁。
BOM主要包括一下的对象模型:
window:包括全局属性、方法,控制浏览器窗口相关的属性、方法;
location:浏览器连接到的对象的位置(URL);
history:操作浏览器的历史;
document:当前窗口操作文档的对象;
window对象在浏览器中有两个身份:
身份一:全局对象。
我们知道ECMAScript其实是有一个全局对象的,这个全局对象在Node中是global;
在浏览器中就是window对象;
身份二:浏览器窗口对象。
作为浏览器窗口时,提供了对浏览器操作的相关的API;
Window全局对象
在浏览器中,window对象就是之前经常提到的全局对象,也就是我们之前提到过GO对象:
比如在全局通过var声明的变量,会被添加到GO中,也就是会被添加到window上;
比如window默认给我们提供了全局的函数和类:setTimeout、Math、Date、Object等;
Window窗口对象
事实上window对象上肩负的重担是非常大的:
第一:包含大量的属性,localStorage、console、location、history、screenX、scrollX等等(大概60+个属性);
第二:包含大量的方法,alert、close、scrollTo、open等等(大概40+个方法);
第三:包含大量的事件,focus、blur、load、hashchange等等(大概30+个事件);
第四:包含从EventTarget继承过来的方法,addEventListener、removeEventListener、dispatchEvent方法;
那么这些大量的属性、方法、事件在哪里查看呢?
MDN文档:developer.mozilla.org/zh-CN/docs/…
看MDN文档时,我们会发现有很多不同的符号,这里我解释一下是什么意思:
删除符号:表示这个API已经废弃,不推荐继续使用了;
点踩符号:表示这个API不属于W3C规范,某些浏览器有实现(所以兼容性的问题);
实验符号:该API是实验性特性,以后可能会修改,并且存在兼容性问题;
携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情