JavaScript 定时器详解:setInterval 与 setTimeout 的使用及区别

作者:青柠时间:2026-10-27 21:21:55浏览:244

本文详细讲解 JavaScript 中两种核心定时器方法:setInterval 和 setTimeout。通过具体代码示例,演示如何利用 setInterval 实现指定间隔的循环函数调用,以及如何通过 clearInterval 停止循环。同时介绍 setTimeout 用于单次延时执行,并展示如何结合 Date 对象实现实时时钟显示。文章涵盖参数设置、变量引用及常见应用场景,帮助开发者掌握定时器的正确用法。

setInterval 循环定时器的使用与取消

利用 setInterval 方法,可以按照设定的时间间隔循环执行指定的函数,直至使用 clearInterval 方法将其停止。

在使用 clearInterval 方法终止循环时,必须先将 setInterval 方法的返回值赋值给一个变量,随后在调用 clearInterval 时引用该变量以准确取消对应的定时器。

具体实现代码如下:

<script type="text/javascript">
var n = 0;
function print(){
document.writeln(n);
if(n==1000){
window.clearInterval(s);
        }    
n++;
    }
var s = window.setInterval(print, 10);
</script>

setTimeout 延时调用与实时时钟示例

利用 setTimeout 和 clearTimeout 可以实现延时调用。该方法会在指定的延迟时间过后执行一次指定函数,且仅执行一次。clearTimeout 的使用方式与 clearInterval 相同,均需通过变量引用来取消。

具体实现代码如下:

<script type="text/javascript">
function printTime(){
var time = new Date();
var year = time.getFullYear();
var month = (time.getMonth())+1;
var daynum = time.getDay();
var hour = time.getHours();
var min = time.getMinutes();
var sec = time.getSeconds();
var da = time.getDate();
var daystr;
switch(daynum){
case 0: daystr="星期日";
break;
case 1: daystr="星期一";
break;
case 2: daystr="星期二";
break;
case 3: daystr="星期三";
break;
case 4: daystr="星期四";
break;
case 5: daystr="星期五";
break;
case 6: daystr="星期六";
break;
default: daystr="";
        }
var str = year+"年"+month+"月"+da+"日 "+daystr+" "+hour+": "+min+": "+sec;
document.getElementById("t").innerHTML = str;
window.setTimeout(printTime, 1000);
    }
</script>
<body onload="printTime()">
<br/>
<div id="t"></div>
</body>
作者最新文章