JS的两个定时器setInterval()和setTimeout()的细节问题
2019-01-30 13:49
751 查看
JS中的两个定时器
JavaScript中有两个定时器
- setInterval( “fn()”, millisec );
在millisec时间后第一次执行fn()代码段,之后每隔millisec时间便再执行一次fn()代码段,直到遇到clearsetInterval( fn );语句停止循环。 - setTimeout( “fn()”,millisec );
在millisec时间后,执行fn()代码段,并且只执行一次。之后定时器虽然没有用了,但依然存在并占用空间,建议用clearTimeout()将其清除。通常将setTimeout嵌入fn()代码段内实现循环,此时与setInterval的区别是先执行一遍代码,之后才开始计时循环执行。
setInterval()
setInterval()是否影响程序的执行顺序?
var fn1 = function(){ console.log('你好'); } var timer1 = setInterval("fn1()",1000); console.log('再见');
结果是,先输出“再见”,1s后输出“你好”,之后每1s输出一次“你好”。
可见,即使setInterval在循环,下面程序也依然执行下去;若在末端加上
clearInterval(timer1);,结果只输出“再见”。
setInterval()的返回值
var fn1 = function(){var a = 1;}, fn2 = function(){var b = 2;}, timer1 = setInterval("fn1()",1000), timer2 = setInterval("fn1()",1000), timer3 = setInterval("fn2()",1000); console.log("timer1"+"====="+timer1); console.log("timer2"+"====="+timer2); console.log("timer3"+"====="+timer3); clearInterval(timer2); console.log("timer1"+"====="+timer1); console.log("timer2"+"====="+timer2); console.log("timer3"+"====="+timer3);
可见setInterval()返回值相当于一个Id,每次执行都会产生一个特定的Id,返回值为数字,从一开始逐次累加。可以根据这个id值用clearInterval()将其清除。
setTimeout()
setTimeout()是否影响程序的执行顺序?
var timer2 var fn2 = function(){ console.log('你好'); timer2 = setTimeout("fn2()",1000); }; fn2(); console.log('再见');
结果是,先输出“你好”以及“再见”,之后每1s输出一次“你好”。
可见,即使setTimeout()在循环,下面程序也依然执行下去;若在末端加上
clearTimeout(timer2),结果只输出“你好”和“再见”。
setTimeout()的返回值
var timer var fn = function(){ console.log("hello world!====="+timer); timer = setTimeout("fn()",1000); }; fn(); setTimeout("clearTimeout(timer);console.log('end----------')",10000);
可见,setTimeout()返回id的同时,还返回了一个执行次数?
相关文章推荐
- JS的两个定时器setTimeout和setInterval
- 详解JS中定时器setInterval和setTImeout的this指向问题
- JS的两个定时器setTimeout和setInterval
- 【JavaScript】使用定时器实现Js的延期执行或重复执行setTimeout,setInterval
- 区别js中两种定时器,setTimeout和setInterval
- 使用定时器实现Js的延期执行或重复执行setTimeout,setInterval
- 【JavaScript】使用定时器实现Js的延期执行或重复执行setTimeout,setInterval
- JS 定时器(setInterval和setTimeout 函数)
- 【JavaScript】使用定时器实现Js的延期执行或重复执行setTimeout,setInterval
- JS 定时器 (setInterval 和 setTimeout 函数)
- 【JavaScript】使用定时器实现Js的延期执行或重复执行setTimeout,setInterval
- JS 定时器 (setInterval 和 setTimeout 函数)
- JS上遇见两个细节问题
- js中两种定时器,setTimeout和setInterval的区别
- JS 定时器 (setInterval 和 setTimeout 函数)
- js中的定时器 setInterval 和 setTimeout
- 【JavaScript】使用定时器实现Js的延期执行或重复执行setTimeout,setInterval
- Js中setInterval、setTimeout不能传递参数问题 及各自的关闭方法
- web 开发之js---js 中的定时器setTimeout(function,time),setinterval(function,time)
- javascript的setTimeout以及setInterval休眠问题。