BOM定义:浏览器对象模型
BOM提供了很多对象,用于访问浏览器的功能,与浏览器承载展现的页面无关,只是单纯看浏览器自己的性能参数1、window对象——BOM核心
window对象比较特别,他有两重含义,首先是单纯代表浏览器的一个窗口,还有一层含义就是他还代表js中的全局Global对象。①、window代表全局作用域时
在全局作用域中声明的变量、函数都会变成window的属性、函数。只是我们一般省略不写。
那么,直接定义全局变量,与在window对象上定义变量的区别:
全局变量不能用delete删除,window对象上定义的可以
var age = 29;
window.color = "red";
delete age; //此处不会报错,但是不会执行
delete window.age; //ok
②、 window代表浏览器窗口时
window作为窗口使用时会有一系列方法,比如设置宽高、位置、打开与关闭。但是每个浏览器的函数定义都不太相同,具体涉及到的时候再说。
1、系统对话框
常见的有3中:alert(); confirm(); prompt();
alert:单纯的提示内容,下面只有一个OK,点击就会关闭,与用户没啥交互
confirm:用法与alert一样,参数直接是要显示的内容,但是会有两个按键,一个OK,一个取消。所有confirm函数有返回值,当用户点击OK,返回true,当用户点击取消、或者直接将窗口关闭,则返回false。
prompt:比confirm再多加一个input,供用户输入内容。接受两个参数,第一个参数时提示的内容,第二个参数时默认在input中显示的文字。点击OK,则返回input中的内容,点击取消、或者关闭对话框,返回null。
2、计时函数
js是单线程语言,但是可以通过两个函数来进行延时,为啥在这里讲?因为这俩函数都是window对象自带的方法。
setTimeout():
接受两个参数,第一个是要执行的函数/语句。 可以直接在双引号中写语句,也可以直接function(){....},第二个参数是延时的毫秒数。
注意:js是一个单线程的解释器,所以当你设置了1000毫秒后执行该函数,实际上是经过1000毫秒后,将此函数放入任务队列。如果此时任务队列中没有积攒的任务,则会执行。但是如果队列中海油未完成的任务,那么就要先进行等待。
setInterval():
接受的参数与setTimeout相同,但是第二个参数代表每隔多少秒执行一次。这个函数是一个重复执行的函数。想要停下来,那么就要调用clearInterval(ID);
2、location对象——页面信息
提供了与当前窗口加载的内容相关的信息——说是内容,其实最多就是URL之类的,再具体的就访问不到了
3、navigator对象——浏览器
提供了客户端浏览器的信息,比如浏览器的名称,版本,是否安装了插件等等
4、screen对象+history对象
screen:只是用来代表客户端的能力,可以访问浏览器的宽高,像素之类的
history:保存着用户上网的历史记录,拥有go方法,支持前后跳转