BOM

BOM

BOM概述

1.1

浏览器对象模型,,提供独立于内容而与浏览器窗口进行交互的对象,核心对象是window

BOM由一系列相关的对象构成,并且每个对象都提供了很多方法和属性。

1.2

window对象是顶级对象,是JS访问浏览器窗口的一个接口

是一个全局对象,定义在全局作用域中的变量、函数都会变成window对象的属性和方法

注意:window下一个特殊属性 window.name

window对象的常见事件

2.1窗口加载事件

1.window.onload

 window.onload=function(){}
 或者
 window.addEventListener('load',function(){})

window.onload是窗口(页面)加载事件,当文档内容完全加载完成会触发该事件(图像,脚本文件,CSS文件等),就调用的处理函数

注意:

1.有了window.onload就可以把JS代码写到页面元素上方,因为onload是等页面内容全部加载完毕,再去执行函数

2.window.onload传统注册事件只能写一次,多个以最后一个为准

3.如果使用addEventListener则没有限制

2.DOMContentLoaded

 document.addEventListener('DOMContentLoaded',function(){})

DOMContentLoaded事件触发时,仅当DOM加载完成,不包括样式表,图片,flash等等

为什么需要它?

如果页面的图片很多,从用户访问到onload触发可能需要较长时间,交互效果不能实现,影响用户体验

2.2调整窗口大小

 window.onresize=function(){}
 window.addEventListener('resize',function(){})

window.onresize是调整窗口打下加载事件,当触发就调用的处理函数

注意:

1.只要窗口像素发生变化,就会触发这个事件

2.我们经常利用这个事件完成响应式布局。window.innerWidth当前屏幕宽度

定时器

3.1两种定时器

setTimeout()和setInterval()

3.2 setTimeout() 回调函数callback

 window.setTimeout(调用函数,[延迟的毫秒数])

设置一个定时器,该定时器在定时器到期后执行调用函数。

几种方式

  //这个调用函数可以直接写函数  还可以写函数名  还有一个写法’函数名()‘
         // setTimeout(function(){
         //     console.log('时间到了');
         // },2000)
         function callback(){
             console.log('baozha');
        }
         // setTimeout(callback,3000)
         setTimeout('callback()',3000);//不提倡
         //有很多定时器,需要加上标识符区分
         var timer1=setTimeout(callback,3000);
         var timer2=setTimeout(callback,5000);//可以同时执行

3.3 停止setTimeout()定时器

 window.clearTimeout(timeout ID)
 <body>
     <button>点击停止定时器</button>
     <script>
         var btn=document.querySelector('button');
         var timer=setTimeout(function(){
             console.log('爆炸了');
        },3000);
         btn.addEventListener('click',function(){
             clearTimeout(timer);
        })
     </script>
 </body>

3.4 setInterval()定时器

 setInterval(function () {
             console.log('持续输出');
        },3000)

每隔多少毫秒调用一次这个函数,一直重复调用

3.5 this的指向问题

1.全局作用域或者普通函数中this指向全局对象window(注意定时器里的this指向window

2.方法调用中谁调用this指向谁

3.构造函数中this指向构造函数的实例

JS执行队列

4.1 JS是单线程

单线程语言,同一个时间只能做一件事

4.2 同步和异步

同步任务

同步任务都在主线程上执行,形成一个执行栈

异步任务

JS的异步通过回调函数实现的

1.普通事件,click,resize

2.资源加载 load,error

3.定时器 settimeout

4.3 JS执行机制

1.先执行执行栈中的同步任务

2.异步任务放入任务队列中

3.一旦执行栈中所有同步任务完成,系统就会按次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状态,进入栈,开始执行

location对象

location对象的属性

location对象属性返回值
location.href 获取或设置整个URL
location.host 返回主机(域名)
location.port 返回端口号 如果未写返回 空字符串
location.pathname 返回路径
location.search 返回参数
location.hash 返回片段 #后面内容 常见于链接 锚点

location对象的方法

location对象方法返回值
location.assign() 跟href一样,可以跳转页面(也叫重定向页面) 记录历史可以后退
location.replace() 替换当前页面,因为不记录历史,所以不能后退页面
location.reload() 重新加载页面,相当于刷新按钮,或者f5 如果参数为true强制刷新ctrl+f5

 

navigator对象

image-20220408163434415

history对象

与浏览器历史记录进行交互。该对象包含用户(在浏览器窗口中)访问过得URL

history对象方法作用
history.back() 可以后退功能
history.forward() 前进功能
history.go(参数) 前进后退功能 参数如果是1 前进一个页面 如果-1后退一个页面
posted @ 2022-04-13 14:29  keeprunning一辉  阅读(51)  评论(0)    收藏  举报