【settimeout会执行几次 js timer停止】javaScript是单线程语言,但它允许通过设置超时值和间歇时间值来调度代码在特定的时刻执行 。超时值是在指定时间过后执行代码,而间歇值是每隔指定的时间就执行一次代码 。其实就是我们常用的setTimeout()和setInterval() 。setTi
javaScript是单线程语言,但它允许通过设置超时值和间歇时间值来调度代码在特定的时刻执行 。超时值是在指定时间过后执行代码,而间歇值是每隔指定的时间就执行一次代码 。其实就是我们常用的setTimeout()和setInterval() 。
setTimeout()和setInterval()方法很相似,相信很多初学者都知道这个方法吧 。因为很多动画,轮播都会用到这个方法,但是相信很多人和我一样,对于这个方法的一些细节并不是很了解 。
javascript
简单的来说下,这两个方法都是接收两个参数,第一个参数就是指定时间能要执行的函数 。它可以是一段字符串,也可以是一个函数,虽说这两种都是可行的,但是由于传递字符串可能导致性能损失,因此不建议以字符串作为第一个参数 。而第二个参数接收的是一个时间值,通常是以毫秒为单位 。
而在使用这两个方法的时候,我们常常也会伴随着使用另外一个方法,clearTimeout()和clearInterval() 。一般情况下,clearTimeout不常使用,因为setTimeout就只是执行一次就结束,所以不用考虑取消调用函数,而setInterval就不一样了,一般情况下,我们都会设置某个条件下去取消它的重复执行 。而今天的想要说的就是clearInterval()接收的参数 。
调用setTimeout方法和setInterval方法之后,该方法会返回一个数值ID,而这个ID是计划执行代码的唯一标识符,上面说的clearInterval接受的参数就是这个ID值 。所以我们通常会定义一个变量来保存这个值,而之前我一直以为,定义的这个变量是这个方法的指针 。
在使用超时调用时,没有必要跟踪超时调用的ID 。一般认为,使用超时调用来模拟间歇调用的是一种最佳模式 。在开发环境下,很少使用真正的间歇调用,原因是后一个间歇调用可能会在前一个间歇调用结束之前启动 。所以最好不要使用间歇调用 。下面看一个超时调用模拟间歇调用的例子:间隙模式:
var num = 0;var max =10;var intervalId=null;function incrementNumber(){num++;if(num==max){clearInterval(intervalId);alert("Done");}}intervalID=setInterval(incrementNumber,500);
超时模式:
var num = 0;var max =10;function incrementNumber(){num++;if(num<max){setTimeout(incrementNumber,500);} else{alert("Done") }}setTimeout(incrementNumber,500);
推荐阅读
- 基金亏钱怎么还会分红,买基金亏钱的原因
- 深宫曲奉天楼害人会被发现吗
- 向消防员英雄致敬 致敬消防员,但希望不要给他们做英雄的机会翻译
- 水银会挥发到空气中吗
- 结婚前一天晚上的宴会叫什么
- 广西家具协会 广西举行高端绿色家具家居产业发展招商会议
- 香油会不会冻
- 美媒曝尼克杨将会在湖人主场参加拳击比赛 对手为一名歌手
- 毫末智行张凯出席2022世界人工智能大会:数据智能是智能驾驶致胜关键
- 带薪缺勤应计入什么会计科目