同步异步
1. JS是单线程同步代码机制
=> 当你写一个死循环的时候,后面的代码就全都不执行了
2. WEBAPI 给我们提供了一个队伍的机制
=> 不会立即执行的代码
=> 准备一个队列
=> 我们叫做单线程异步
3. 异步:
==> 不会立即执行的代码
==> 当代码从上到下的执行,遇到异步代码的时候
==> 会把他放到队列里边,先不执行
==> 等到所有同步代码执行完毕,再从队列里边拿代码里来执行
JS提供了两个异步定时器机制
1. setTimeout()
- 语法:
setTimeout(函数,时间ms)
- 时间到达的时候,执行一遍函数就结束
- 延时定时器 / 炸弹定时器
2. setInterval()
- 语法:
setInterval(函数,时间)
- 每间隔固定时间,执行一遍函数
- 间隔定时器
定时器的返回值
- 有返回值的
=> 不分定时器种类
=> 只表示你是页面中的第几个定时器
=> 就是一个 number 数据类型
var time1 = setTimeout(function(){ console.log('timeout')})
console.log(time1) // 1
var time2 = setTimeout(function(){ console.log('timeout')})
console.log(time2) // 2
- 返回值 的作用
=> 用来关闭定时器使用的 - 关闭定时器
+ clearInterval()
=> 语法:clearInterval(要关闭的定时器返回值)
+ clearTimeout()
=> 语法:clearTimeout(要关闭的定时器返回值)
+ 注意:关闭定时器是不分种类的,只要你的定时器返回值是对的就可以
var time1 = setTimeout(function(){ console.log('timeout')})
console.log(time1) // 1
var time2 = setTimeout(function(){ console.log('timeout')})
console.log(time2) // 2
btn.onclick = function(){
clearTimeout(1)
clearInterval(time2)
}