当前位置:首页 > JavaScript

js 实现每秒递增

2026-04-07 17:34:09JavaScript

实现每秒递增的 JavaScript 方法

使用 setInterval 定时器

let count = 0;
const interval = setInterval(() => {
  count++;
  console.log(count);
}, 1000);

// 清除定时器示例
// clearInterval(interval);
  • 通过 setInterval 设置每秒执行一次的函数
  • 每次执行时将计数器 count 加 1
  • 1000 毫秒(1 秒)作为时间间隔参数

使用递归 setTimeout

js 实现每秒递增

let count = 0;
function increment() {
  count++;
  console.log(count);
  setTimeout(increment, 1000);
}
increment();
  • 定义递归函数 increment
  • 每次调用函数后设置新的 1 秒延时
  • 避免 setInterval 可能存在的执行堆积问题

基于 Date 对象的时间差计算

js 实现每秒递增

let count = 0;
let lastTime = Date.now();
function checkTime() {
  const currentTime = Date.now();
  if (currentTime - lastTime >= 1000) {
    count++;
    console.log(count);
    lastTime = currentTime;
  }
  requestAnimationFrame(checkTime);
}
checkTime();
  • 使用 requestAnimationFrame 实现循环
  • 通过比较时间戳确保精确的 1 秒间隔
  • 适合需要与渲染帧同步的场景

使用异步函数与 await

async function increment() {
  let count = 0;
  while(true) {
    await new Promise(resolve => setTimeout(resolve, 1000));
    count++;
    console.log(count);
  }
}
increment();
  • 利用 async/await 语法实现同步风格的异步代码
  • 每次循环等待 1 秒后执行递增
  • 代码结构更清晰易读

注意事项

  • 浏览器环境下建议使用 requestAnimationFrame 避免后台标签页节流
  • Node.js 环境可直接使用 setIntervalsetTimeout
  • 清除定时器使用 clearIntervalclearTimeout 防止内存泄漏
  • 生产环境应考虑添加暂停/继续功能控制计数器

标签: js
分享给朋友:

相关文章

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(func,…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…

js验证码实现

js验证码实现

验证码的基本原理 验证码(CAPTCHA)用于区分人类用户和自动化程序。常见类型包括图形验证码、滑动验证码、短信验证码等。JavaScript 可用于前端验证码的生成和验证逻辑。 图形验证码实现 使…

js实现点击效果

js实现点击效果

实现点击效果的JavaScript方法 使用addEventListener绑定点击事件 通过document.getElementById或document.querySelector获取DOM元素…