Welcome 微信登录

首页 / 脚本样式 / JavaScript / JavaScript中setinterval和setTimeout的区别

JavaScript中setinterval和setTimeout的区别2014-09-12计时器setTimeout()与setInterval()是原生JS很重要且用处很多的两个方法, 但很多人一直误以为是相同的功能: 间隔时间重复执行传入的句柄函数. 但实际上, 并非如此, 既然JS给出了两个不同的命名, 肯定有其迥异之处.

先来看看两者JS手册及英文词典上的解释:

JS手册setTimeout() : 用于在指定的毫秒数后调用函数或计算表达式;

英文释义timeout() : 超时;暂时休息;工间休息;

JS手册setInterval() : 按照指定的周期(以毫秒计)来调用函数或计算表达式. 会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭;

英文释义interval() : 间隔;间距;幕间休息;

不难看出, 只要我们仔细体会JS手册及命名释义, 就能很容易的区分开两者的区别. 简单的说, 两才的区别在于,setTimeout()方法是在等待指定时间后执行函数, 且只执行一次传入的句柄函数. setInterval()方法是每指定间隔时间后执行一次传入的句柄函数,循环执行直至关闭窗口或clearInterval().

下面通过代码看一下却别:

var timeout=function(){alert("等待2s后弹出,仅此一次!在等待时间内clearTimeout可停止执行!")}var interval=function(){alert("每2s循环弹出,直至clearInterval或关闭窗口!")}var input=document.getElementsByTagName("input");var clearTimeoutFun=null;var clearIntervalFun=null;input[0].onclick=function(){clearTimeoutFun=setTimeout(timeout,2000);}input[1].onclick=function(){clearTimeout(clearTimeoutFun);}input[2].onclick=function(){clearIntervalFun=setInterval(interval,2000);}input[3].onclick=function(){clearInterval(clearIntervalFun);}
动手才是真理,自己可以动手写一下。