JavaScript 定时器详解:setTimeout、setInterval 与倒计时实现

作者:半夏时间:2026-10-23 09:27:44浏览:181

本文详细解析 JavaScript 中 setTimeout 与 setInterval 定时器的设置、区别及取消方法。通过循环调用 setTimeout 模拟 setInterval 效果,并展示一个完整的倒计时切换图片案例,涵盖代码逻辑与实现步骤,帮助开发者掌握前端定时任务处理。

JavaScript 定时器概述

本文通过具体实例介绍 JavaScript 定时器的设置、使用方法以及倒计时功能的实现,供读者参考学习。

定时器的设置与区别

1、设置定时器

定时器常用于需要按固定时间间隔或延时执行的任务。在浏览器对象模型(BOM)的 window 对象中,提供了两个用于设置定时器的函数。


setTimeout(function,delay);//设置延时多少毫秒执行该函数,只执行一次,返回值是一个id
setInterval(function,delay);//设置间隔多少毫米一直执行该函数,执行多次,返回值是一个id

两者的主要区别在于:setTimeout 方式仅执行一次,而 setInterval 理论上可以无限次执行,直到被手动取消。

取消定时器的方法

2、取消定时器

如前所述,开启定时器时会返回一个 ID,该 ID 用于区分多个同时运行的定时器。当需要停止定时器时,可以使用以下两种方法。


clearTimeout(id);//取消由setTimeout方式开启的定时器
clearInterval(id);//取消由setInterval方式开启的定时器

循环调用 setTimeout 模拟 setInterval

3、循环调用 setTimeout

在实际开发中,可以通过循环调用 setTimeout 来实现与 setInterval 类似的效果。这让人联想到 Android 开发中的 Handler 机制,即发送一条延时消息,并在处理逻辑中再次发送下一条消息。例如:


<script>
  var t = 1;
  function time(){
    console.log(t++);
    window.setTimeout('time()',1000);
  }
  window.setTimeout('time()',1000);
</script>

倒计时功能实现案例

4、倒计时案例

页面包含一个按钮,显示倒计时的数字。每隔一秒更新一次数字,当数字归零时,切换为爆炸图片以展示爆炸效果。

效果图

JavaScript 定时器概述
JavaScript 定时器概述

代码


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title></title>
  <link rel="stylesheet" href="">
</head>
<body>
  <h1>炸弹效果</h1>
  <input type="button" value="5" /><br/>
  <img src="warn.jpg"/>
</body>
<script>
  //定时执行
  function time(){
    var input = document.getElementsByTagName('input')[0];//获取按钮中的数字
    var time = parseInt(input.value) - 1;
    input.value = time;
    //爆炸操作
    if(time <= 0){
      var img = document.getElementsByTagName('img')[0];
      img.src = 'boom.jpg';//切换爆照图片
      clearInterval(t1);//清除定时器
    }
  }
  var t1 = window.setInterval('time()',1000);//开启定时器
</script>
</html>

思路

该示例逻辑较为简单:首先每隔 1 秒开启定时器,在定时执行的回调函数中获取当前倒计时的数值,执行减 1 操作后重新赋值给按钮。当数值小于或等于 0 时,切换图片以呈现爆炸效果。此时务必记得取消定时器,避免资源浪费。

更多关于 JavaScript 相关内容感兴趣的读者可查看本站专题:《JavaScript 时间与日期操作技巧总结》、《JavaScript 查找算法技巧总结》、《JavaScript 错误与调试技巧总结》、《JavaScript 数据结构与算法技巧总结》、《JavaScript 遍历算法与技巧总结》及《JavaScript 数学运算用法总结》

希望本文所述对大家 JavaScript 程序设计有所帮助。

作者最新文章