BOM 浏览器对象模型

目录

1、Navigator

2、history

2.1、回退按钮

2.2、前进按钮

2.3、可以向前跳转也可以向后跳转

3、location

3.1、获取当前地址

3.2、跳转到一个新的地址

3.3、跳转到一个新的地址(无法通过回退按钮回退)

3.4、刷新页面,可以传递一个true来强制清缓存刷新

4、事件循环

4.1、函数执行环境

4.2、消息队列

5、定时器

5.1、设置定时器的方式


BOM为我们提供了一组对象,通过这组对象可以完成对浏览器的各种操作。

BOM对象:

                        - Window —— 代表浏览器窗口(全局对象)

                        - Navigator —— 浏览器的对象(可以用来识别浏览器)

                        - Location —— 浏览器的地址栏信息

                        - History —— 浏览器的历史记录(控制浏览器前进后退)

                        - Screen —— 屏幕的信息

BOM对象都是作为window对象的属性保存的,所以可以直接在JS中访问这些对象。

1、Navigator

浏览器的对象(可以用来识别浏览器)

navigator.userAgent :返回一个用来描述浏览器信息的字符串

console.log(navigator.userAgent)

2、history

2.1、回退按钮

history.back()

 history.back()

2.2、前进按钮

history.forward()

 history.forward()

2.3、可以向前跳转也可以向后跳转

 history.go()

 history.go(-1)  // 回退到上一个页面

3、location

浏览器地址栏的信息。

可以直接将location的值修改为一个新的地址,这样会使得网页发生跳转

3.1、获取当前地址

location.href

console.log(location.href)

3.2、跳转到一个新的地址

location.assign()

location.assign("https://www.lilichao.com")

3.3、跳转到一个新的地址(无法通过回退按钮回退)

location.replace()

location.replace("https://www.lilichao.com")

3.4、刷新页面,可以传递一个true来强制清缓存刷新

location.reload()

location.reload(true)

4、事件循环

4.1、函数执行环境

函数在每次执行时,都会产生一个执行环境,执行环境负责存储函数执行时产生的一切数据。

问题:函数的执行环境要存储到哪里呢?- 函数的执行环境存储到了一个叫做调用栈的地方。 

  • 栈,是一种数据结构,特点:后进先出。
  • 调用栈(call stack): 调用栈负责存储函数的执行环境。当一个函数被调用时,它的执行环境会作为一个栈帧插入到调用栈的栈顶,函数执行完毕其栈帧会自动从栈中弹出。

4.2、消息队列

消息队列负责存储将要执行的函数。当我们触发一个事件时,其响应函数并不是直接就添加到调用栈中的,因为调用栈中有可能会存在一些还没有执行完的代码。 事件触发后,JS引擎是将事件响应函数插入到消息队列中排队。

5、定时器

本质,就是在指定时间后将函数添加到消息队列中。通过定时器,可以使代码在指定时间后执行。

5.1、设置定时器的方式

有两种:

setTimeout()      只执行一次

                            - 参数:

                                1. 回调函数(要执行的代码)

                                2. 间隔的时间(毫秒)

                            - 关闭定时器

                                clearTimeout()

setInterval()       每间隔一段时间代码就会执行一次

                            - 参数:

                                1. 回调函数(要执行的代码)

                                2. 间隔的时间(毫秒)

                            - 关闭定时器

                                clearInterval()

PS:setInterval() 每间隔一段时间就将函数添加到消息队列中。但是如果函数执行的速度比较慢,它是无法确保每次执行的间隔都是一样的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值