当前位置:首页 > 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实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现搜索

js实现搜索

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

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let curr…

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…