定时器
setTimeout()
window.setTimeout(调用函数,【延迟毫秒数】);一次性的
注意:
window在调用时候可省略
延时函数单位是毫秒,可以省略,如果省略就是0;
调用函数可以写函数名
页面中可能有很多定时器,我们可以给定时器加标志符(名字)
setTIimeout 也被称之为回调函数;需要等待时间,时间到了就调用;时间到了才执行function
2.setInterval(回调函数,【j间隔时间】);(可以反复调用,时间到了就做)
3.清除定时器
1.window.clearTime(timeout 名)
注意:window可以省略
2.clearInterval(定时器名);
4.this指向问题
一般情况下this指向的是那个调用他的函数的对象
1.全局作用域下或者普通函数中this指向全局对象window(注意定时器里面的this指向的就是window)
2.方法调用中谁调用this指向谁
3.构造函数中this指向构造函数的实例对象
5.js是原本是单线程:同一时间只能做一件事情;
在H5之后运行多线程了;
同步:前一个人物结束只会在执行另一个任务
异步:同一时间做几件事情;
6.js:执行机制:
1.先执行执行栈中的同步任务
2.异步任务(回调函数)放入任务队列中,会有个异步进程处理,判断事件是否立刻放入任务队列中去。
3.一旦执行栈中的同步执行完毕后,系统会按按次序读取任务队列的异步任务,于是被读取的异步任务结束等待状态,进入执行栈,开始执行。
任务队列执行完毕之后,会不断循环观察是否还有异步任务。被称之事件循环 even loop;
同步任务:都在主线程执行,形成一个执行栈
异步任务:js异步通过回调函数实现
一般而言异步任务有三种情况:
1.普通类型例如click、resize
2.资源加载:load 、error
3.定时器 setInterval、setTimeout
异步任务相关的回调函数添加到任务队列中(任务队列也称之为消息队列)
location
location.href:获取url
location.search 获取参数
location对象方法
location.assign()跟href一样,可以跳转页面 可以后退功能
location.replace()替换当前页面 不记录历史 不能返回
location.reload() 重新加载页面 加个true 强制刷新 重新加载
history历史
history.forward 前进
history.back返回
history.go(1) 参数几就前进或者后退多少步;