视频加载失败

JavaScript的定时器和延时器

589 字
3 分钟
JavaScript的定时器和延时器

定时器和延时器#

定时器

  • setInterval()函数可以重复调用一个函数,在每次调用之 间具有固定的时间间隔

    setInterval(function () {//第一个参数是函数
    // 这个函数将自动被以固定间隔时间调用
    }, 2000);//第二个参数是间隔时间,以毫秒为单位,1000毫秒是1秒

函数的参数

  • setInterval()函数可以接收第3、4……个参数,它们将按顺 序传入函数

    setInterval(function (a, b) {
    // 形式参数a的值是88,形式参数b的值是66
    }, 2000, 88, 66);//从第三个参数开始,表示传入函数内的参数

具名函数也可以传入setInterval

  • 具名函数也可以传入setInterval

    var a = 0;
    function fun() {
    console.log(++a);
    }
    setInterval(fun, 1000);//具名函数当做第一个参数,注意这里没有圆括号!

清除定时器

  • clearInterval()函数可以清除一个定时器

    // 设置定时器,并且用timer变量接收这个定时器
    var timer = setInterval(function () {
    }, 2000);//用变量timer接收定时器
    // 点击按钮时,清除定时器
    oBtn.onclick = function () {
    clearInterval(timer);//清除定时器的时候,要传入定时器变量
    }

延时器

  • setTimeout()函数可以设置一个延时器,当指定时间到了 之后,会执行函数一次,不再重复执行。

    setTimeout(function () {
    // 这个函数会在2秒后执行一次
    }, 2000);

清除延时器

  • clearTimeout()函数可以清除延时器,和clearInterval() 非常类似

初步认识异步语句

  • setInterval()和setTimeout()是两个异步语句
  • 异步(asynchronous):不会阻塞CPU继续执行其他语句, 当异步完成时,会执行“回调函数”(callback)

使用定时器实现动画#

  • 动画是网页上非常常见的业务需求

  • 使用定时器可以实现动画,利用的就是“视觉暂留”原理

    <body>
    <button id="btn">点击移动</button>
    <div id="box"></div>
    <script>
    var box = document.getElementById("box");
    var btn = document.getElementById("btn");
    var left = 100;
    // 点击按钮,移动盒子
    btn.onclick = function () {
    setInterval(function () {
    left += 10;
    if(left >= 1000){
    clearInterval(timer);
    }
    box.style.left = left+"px";
    }, 20);
    }
    </script>
    </body>
  • 使用定时器实现动画较为不便:不方便根据动画总时间计算步长;运动方向要设置正负;多种运动进行叠加较为困难(比如一个方形一边移动 一边变为圆形)

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

JavaScript的定时器和延时器
https://f.youzi177.cn/posts/2026102004javascript-de-ding-shi-qi-he-yan-shi-qi/
作者
小封鸭
发布于
2026-10-20
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
小封鸭
小楼一夜听春雨,深巷明朝卖杏花
公告
欢迎来到我的博客。这里主要记录前端全栈和日常内容
分类
标签
最新动态
站点统计
文章
60
分类
3
标签
12
总字数
107,734
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
EdgeOne Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录