当前位置:首页 > JavaScript

js 实现定时

2026-03-15 10:47:22JavaScript

定时器方法

JavaScript 提供了几种实现定时功能的方法,适用于不同场景:

setTimeout()
用于在指定延迟后执行一次函数。语法如下:

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

示例:延迟 2 秒后输出日志

setTimeout(() => {
  console.log('执行一次');
}, 2000);

setInterval()
用于每隔固定时间重复执行函数。语法如下:

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

示例:每隔 1 秒输出日志

setInterval(() => {
  console.log('重复执行');
}, 1000);

清除定时器

clearTimeout()clearInterval()
用于取消已设置的定时器,需传入定时器返回的 ID:

const timerId = setTimeout(() => {}, 1000);
clearTimeout(timerId);

const intervalId = setInterval(() => {}, 1000);
clearInterval(intervalId);

进阶用法

递归 setTimeout
替代 setInterval 实现更可控的循环:

function repeatedTask() {
  console.log('执行任务');
  setTimeout(repeatedTask, 1000); // 每次执行后重新设置
}
setTimeout(repeatedTask, 1000);

Promise 封装
创建可链式调用的延迟:

js 实现定时

function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}
delay(2000).then(() => console.log('延迟完成'));

注意事项

  • 定时器的最小延迟受浏览器限制(通常 ≥4ms)
  • 长时间运行的定时器可能导致页面性能下降
  • 使用 requestAnimationFrame 实现动画比 setInterval 更高效

标签: js
分享给朋友:

相关文章

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: fun…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…