BOM
是浏览器对象模型,提供了独立于内容与浏览器窗口进行交互的对象,核心对象,window
浏览器顶级对象window
- 接口:js访问浏览器的接口
- 全局变量:变成window对象的属性或方法。
有window.name,所以我们取名一般不要用name。
事件
常见事件:
- window.onload窗口加载事件,全部加载完,在执行。可访问任意位置。
- window.DOMContentLoade仅当Dom加载不包括css样式,图片等加载
- 窗口大小,window.onreSize
window.innerWidth当前屏幕宽度
两种定时器
- window.setTimeout(调用函数,[延迟的毫秒数])
只执行一次(轮播图)
可直接写函数,也可直接写函数名,多个定时器要命名。
停止定时器:window.clearTimeout(timeoutID) - window.setInterval(调用函数,[延迟的毫秒数])
可执行多次(倒计时)
刷新有空白页,先调用一次该方法。
停止定时器:window.clearInterval();
this指向
- 全局的:window
- 方法调用:指向调用者
- 构造函数中:创建的新对象
js的执行机制
js是单线程,同一个事件只能做一件事情。
所以分为同步(顺序)和异步(同时)
主线程执行栈-同步
回调函数(普通事件,资源加载,定时器)-异步任务,任务队列
location对象
获取或设置窗体的url,解析url(网址)
url:统一资源定位符
location.href:返回url
location:seatch:返回query参数
location.hash:返回fragnent链接
location.assign():可后退
location.replace():替换页面,不可后退。
location.reload()刷新f5,参数为true,强制刷新,ctrl+f5
navigator
判断打开浏览器(移动端/pc端)
history
历史记录进行交互
back(),后退
forward(),前进
go(参数)1,前进。-1,后退。