当前位置:首页 > JavaScript

js实现计时

2026-04-07 02:43:14JavaScript

使用 setInterval 实现计时器

通过 setInterval 可以创建一个周期性执行的计时器,适合需要持续更新的场景。以下代码实现一个从 0 开始递增的计时器:

let seconds = 0;
const timer = setInterval(() => {
  seconds++;
  console.log(`已计时: ${seconds} 秒`);
}, 1000);

// 停止计时(示例:10秒后停止)
setTimeout(() => {
  clearInterval(timer);
  console.log("计时结束");
}, 10000);

使用 setTimeout 递归实现计时器

递归调用 setTimeout 可以避免 setInterval 的潜在误差累积问题,适合需要高精度计时的场景:

let seconds = 0;
function startTimer() {
  setTimeout(() => {
    seconds++;
    console.log(`已计时: ${seconds} 秒`);
    startTimer(); // 递归调用
  }, 1000);
}
startTimer();

显示格式化的时间(HH:MM:SS)

将秒数转换为易读的时分秒格式:

function formatTime(seconds) {
  const hours = Math.floor(seconds / 3600);
  const minutes = Math.floor((seconds % 3600) / 60);
  const secs = seconds % 60;
  return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
}

let seconds = 0;
setInterval(() => {
  seconds++;
  console.log(`当前时间: ${formatTime(seconds)}`);
}, 1000);

性能优化的 requestAnimationFrame 计时器

适用于需要与屏幕刷新率同步的高性能计时场景(如动画):

let startTime = performance.now();
function updateTimer(timestamp) {
  const elapsed = Math.floor((timestamp - startTime) / 1000);
  console.log(`精确计时: ${elapsed} 秒`);
  requestAnimationFrame(updateTimer);
}
requestAnimationFrame(updateTimer);

暂停与恢复功能实现

扩展基础计时器,增加暂停和恢复功能:

js实现计时

let seconds = 0;
let timer;
let isRunning = false;

function start() {
  if (!isRunning) {
    isRunning = true;
    timer = setInterval(() => {
      seconds++;
      console.log(`计时中: ${seconds} 秒`);
    }, 1000);
  }
}

function pause() {
  clearInterval(timer);
  isRunning = false;
}

// 使用示例
start();
setTimeout(pause, 5000); // 5秒后暂停
setTimeout(start, 8000); // 8秒后恢复

注意事项

  1. 浏览器环境下,页面切换可能导致 setInterval/setTimeout 延迟执行
  2. clearIntervalclearTimeout 需传入正确的计时器ID
  3. 长时间运行的计时器可能导致内存泄漏,需在页面卸载时清理

标签: js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…