JS定时器setTimeout和setInterval介绍

JavaScript 定时器,有时也称为“计时器”,用来在经过指定的时间后执行某些任务。avaScript 中提供了两种方法来设置定时器,分别是 setTimeout() 和 setInterval()。

window.setTimeout - Web API 接口参考 | MDN

setInterval() - Web API 接口参考 | MDN

setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式,只会执行一次;而setInterval()方法则可以按照指定的周期(单位为毫秒)来重复执行函数或表达式,直到clearInterval把它清除或者手动关闭浏览器窗。

注意setTimeout()只执行一次,setInterval()可以执行多次。

setTimeout()语法格式如下:

setTimeout(function[, delay, arg1, arg2, ...]);

setTimeout(function[, delay]);

setTimeout(code[, delay]);

参数说明:

function:一个函数(通常使用匿名函数),其中定义了定时器中要执行的代码;

code:字符串类型的代码,这些代码会在定时器到期后被编译执行,出于安全考虑不建议使用;

delay:可选参数,定时器在执行的其中代码之前,要等待的时间,单位为毫秒(1秒 = 1000毫秒),如果省略此参数,则其默认值为 0;

arg1、arg2、...、argN:要传递给函数的参数。

提示:setTimeout()只执行一次,但可以让被执行的代码里面自身再次调用 setTimeout() 方法已达到多次执行的目的。

setInterval()语法格式如下:

setInterval(function, delay, [arg1, arg2, ...]);

setInterval(code, delay);

参数说明:

function:一个函数(通常使用匿名函数),其中定义了定时器中要执行的代码;

code:字符串类型的代码,这些代码会在定时器到期后被编译执行,出于安全考虑不建议使用;

delay:可选参数,定时器在执行的其中代码之前,要等待的时间,单位为毫秒(1秒 = 1000毫秒),如果省略此参数,则其默认值为 0;

arg1、arg2、...、argN:要传递给函数的参数。

请注意,每次调用回调函数之间经过的实际时间可能会比给定的 delay 长,在浏览器中,setTimeout()/setInterval() 的每调用一次定时器的最小间隔是 4ms,这通常是由于函数嵌套导致(嵌套层级达到一定深度),或者是由于已经执行的 setInterval 的回调函数阻塞导致的。

setTimeout()和setInterval()的返回值是正整数,表示定时器的编号。需要注意的是setTimeout()和 setInterval()共用一个编号池,技术上,取消该定时器clearTimeout()和clearInterval()可以互换。但是,为了避免混淆,不要混用取消定时函数,而要用clearTimeout()方法取消先前通过setTimeout()建立的定时器;用clearInterval()方法取消先前通过setInterval()设置的重复定时器。

下面用setInterval实现计数器功能,每秒(1000ms)累加1一次,先看效果:

源码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用setInterval实现计数器功能</title>
<style>
div{height: 30px;
}
</style>
<script>var t;var k = 0;function start() {k += 1;document.getElementById("num").innerHTML = k;document.getElementById("num2").value = k;}function startCount() {t = setInterval(start, 1000);}function stopCount() {clearTimeout(t);}</script>
</head>
<body>
<p>用setInterval实现计数器功能,每秒(1000ms)累加1一次</p>
<div id="num"> </div>
<input type="text" id="num2">
<input type="button" onclick="startCount()" value="开始">
<input type="button" onclick="stopCount()" value="停止">
</body>
</html>

下面给出循环逐字输出字符串的例子,先看效果图:

源码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>setInterval测试</title>
<script>
var str = "循环逐字输出本句!";
var seq = 0;
var second=1000; //间隔时间1秒钟
function scroll() {msg = str.substring(0, seq+1);document.getElementById('word').innerHTML = msg;seq++;if (seq >= str.length) seq = 0;
}
</script>
</head>
<body onload="setInterval('scroll()',second)">
<h2 id="word"></h2>
</body>
</html>

更多的例子可见,JavaScript定时器示例https://blog.csdn.net/cnds123/article/details/120567946

JS定时器setTimeout和setInterval介绍相关推荐

  1. js定时器setTimeout和setInterval用法及区别,清除定时器的使用

    setTimeout和setInterval使用方法 定时器两个参数,第一个是执行代码,第二个是执行时间.执行时间自己随便设置,执行代码有以下几种方式传入: 1.匿名函数形式传入 setTimeout ...

  2. 定时器setTimeout和setInterval的简单应用

    本文简单利用定时器setTimeout和setInterval举了两个小栗子:定时炸弹和1-100递增 代码如下: <!DOCTYPE html> <html lang=" ...

  3. js中的两种定时器setTimeout()和setInterval()怎么用

    JS有两种定时器分别是setTimeout()和setInterval(),这两个区别就是setTimeout()是一次性的定时器,而setInterval()是循环的定时器. 定时器的精度 js中的 ...

  4. js中的定时器 setTimeout()和setInterval() (保姆级教程)

    1 两种定时器 window 对象给我们提供了 2 个非常好用的方法-定时器. setTimeout() setInterval() 2 setTimeout() 定时器 window.setTime ...

  5. 前端开发:JS中setTimeout和setInterval的对比使用

    前言 在前端开发过程中,关于计时器的使用是非常常用的知识点,也是非常重要的,尤其是需要规定延迟多久之后再去执行某个操作.在JS的计时器使用中有setTimeout和setInterval,二者都是定时 ...

  6. js中setTimeout的用法和JS计时器setTimeout与setInterval方法的区别和confirm方法

    setTimeout()在js类中的使用方法 setTimeout (表达式,延时时间) setTimeout(表达式,交互时间) 延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTi ...

  7. 关于定时器setTimeout与setInterval的定时与关闭操作

    setTimeout与setInterval setTimeout只执行一次,主要广泛用于在指定的毫秒(1000ms=1s)后调用函数等.而setInterval则是在相隔指定的周期内循环执行.所以s ...

  8. js定时器setTimeout、clearTimeout、setInterval使用和区别

    setTimeout(调用函数,[延迟的毫秒数]): 用于设置一个定时器 该定时器在定时器到期后执行调用函数 案例:3秒后显示log打印结果 <script>//方法一// setTime ...

  9. 定时器 setTimeout、setInterval详解

    定时器:按我个人理解来说就是固定某个时间后,时间到了,就提醒我时间到了. 程序中的定时器:相当于倒计时,也相当于计时器.作用是在设定的某个时间后,执行特定的方法. 我们先来了解一下setTimeout ...

最新文章

  1. 上传文件大小的配置Webcong
  2. CVPR2021 | 实现图像的“无限放大”,超详细局部隐式图像函数(LIIF)解读
  3. 3层,5层,7层,9层网络性能比较-0-2
  4. word中viso/math type公式比文字大
  5. python 赋值 浅copy_python – 浅拷贝,deepcopy和正常赋值操作之间的区别是什么?
  6. 塔拉 孤岛危机2_2月15日新作密集周Xbox游戏热度排行公布《Apex英雄》登顶《除暴战警3》战役模式名列前3...
  7. linux下安装phantomjs
  8. 电大计算机应用技术基础视频,电大形成性测评-计算机应用技术基础01
  9. python db api_dbapi · PyPI
  10. js中WINDOW对象中的location成员对象
  11. pbewithmd5anddes算法 对应.net_「AI」目标检测第一话:R-CNN和SPP-Net
  12. 信息率失真函数matlab,基于MATLAB的信息率失真函数计算本科毕业论文.doc
  13. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_10 打印流_1_打印流_概述和使用...
  14. 移远EC20 4G模块拨号相关
  15. 如何填写xshell注册码_激活码
  16. mac无法连接服务器无法定位当前位置,mac book pro 无法定位
  17. MongoDB数据库入门到精通看这一篇就够了
  18. 头像怎么画,日系头像绘画教程
  19. 发送邮件失败提示validity check failed 处理
  20. Angular开发(三)-关于属性绑定与事件绑定

热门文章

  1. 08年10大科技突破 鲨鱼皮泳衣助阵菲尔普斯
  2. 41 JS函数递归调用
  3. C语言编程快速解决爱因斯坦谜题
  4. 编程题之一:严查枪火
  5. (实验15)单片机,STM32F4学习笔记,代码讲解【RTC实时时钟实验】【正点原子】【原创】
  6. Cocos2d-x 3.2 大富翁游戏项目开发-第二十四部分 彩票开奖
  7. Webservice实践(二)Webservice 客户端开发
  8. javax.persistence.OneToMany.orphanRemoval()Z异常
  9. 矩阵及数值分析(3)绝对误差与相对误差
  10. setTimeout的理解