web APIs:BOM
BOM ( Browser Object Model )即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window。
1、窗口加载事件:window.onload = funciton(){ }; / window.addEventListener('load', function(){ }); 当页面加载完再执行处理函数,onload方法只能执行一个,以最后一个为准;用addEventListener则无限制
DOMContentLoaded事件,当dom加载完即处理,不包含css,img,flash加载,如果页面图片很多,可以使用该方法,当网络质量差时,增加用户体验
2、调整窗口大小事件:window.onresize调整窗口大小加载事件,触发时就调用,使用该方法完成响应式布局; window.innerWidth当前屏幕宽度
3、定时器:
setTimeout(回调函数callback,[延迟的毫秒数]); 一个页面多个定时器需要加不同标识符; 停止定时器window.clearTimeout(timeoutID)
setInterval(回调函数callback,[延迟的毫秒数]); 重复调用,间隔毫秒;clearInterval(timeoutID);
调用定时器名的时候需要注意,先给定时器起一个全局变量,否则局部变量两个按钮无法调用
var timer = null; // 全局变量 null是一个空对象 begin.addEventListener('click', function() { timer = setInterval(function() { console.log('ni hao ma'); }, 1000); }) stop.addEventListener('click', function() { clearInterval(timer); })
4、this指向:一般来说this指向最终调用他的对象
全局作用域和普通函数下,还有定时器指向的是全局对象window
方法中谁调用this指向谁
构造函数中this指向构造函数实例
5、js执行机制:单线程
JavaScript是为处理页面中用户的交互,以及操作DOM而诞生的。比如我们对某个DOM元素进行添加和删除操作,不能同时进行。应该先进行添加,之后再删除。
Web Worker标准,脚本创建多线程,实行同步和异步操作
同步任务都放到了主线程上执行,形成执行栈
异步任务通过回调函数实现:1、普通事件,click、resize等;2、资源加载,load、error等;3、定时器,setInterval、setTimeout等。这一类异步任务相关的回调函数添加到任务队列中。
机制:1、先执行同步任务;2、异步任务放到任务队列中;3、同步任务执行完毕后,系统依次读取任务队列中的异步任务
6、location对象:用于获取或设置窗体的url,可解析url,属性返回的是对象,所以称为location对象
跳转 location.herf('地址');a.herf需要处理程序,如按钮等,而location.herf可直接执行,也可处理
7、navigator
navigator对象包含有关浏览器的信息,它有很多属性,我们最常用的是userAgent,该属性可以返回由客户机发送服务器的user-agent头部的值。判断用户使用何种终端打开
if ( (navigator.userAgent.match(/(phonelpad|pod|iPhone|iPod|iosliPad|Android lMobile|BlackBerry|IEMobile |MQQBrowser| JuC|rennec|wOSBrowser|BrowserNG| Webosl symbian |windows Phone)/i) )) { window.location.href = "";//手机 }else { window . location.href = "";//电脑
8、history:与浏览器历史记录交互