当前位置:首页 > JavaScript

js 实现倒数

2026-03-14 13:57:57JavaScript

实现倒数功能的方法

使用 setTimeout 递归

通过递归调用 setTimeout 实现倒数功能,适合简单场景。

function countdown(seconds) {
  console.log(seconds);
  if (seconds > 0) {
    setTimeout(() => countdown(seconds - 1), 1000);
  }
}
countdown(5);

使用 setInterval

通过 setInterval 定时器实现倒数,需要手动清除定时器。

js 实现倒数

function countdown(seconds) {
  const timer = setInterval(() => {
    console.log(seconds--);
    if (seconds < 0) clearInterval(timer);
  }, 1000);
}
countdown(5);

使用 Promise 和 async/await

结合 Promise 和 async/await 实现更优雅的异步倒数。

function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function countdown(seconds) {
  for (let i = seconds; i >= 0; i--) {
    console.log(i);
    await delay(1000);
  }
}
countdown(5);

添加回调函数

在倒数结束时触发回调函数,增加灵活性。

js 实现倒数

function countdown(seconds, callback) {
  console.log(seconds);
  if (seconds > 0) {
    setTimeout(() => countdown(seconds - 1, callback), 1000);
  } else {
    callback();
  }
}
countdown(5, () => console.log('倒计时结束'));

显示分钟和秒

将总秒数转换为分钟和秒格式,提升可读性。

function formatTime(seconds) {
  const mins = Math.floor(seconds / 60);
  const secs = seconds % 60;
  return `${mins}:${secs < 10 ? '0' : ''}${secs}`;
}

function countdown(totalSeconds) {
  console.log(formatTime(totalSeconds));
  if (totalSeconds > 0) {
    setTimeout(() => countdown(totalSeconds - 1), 1000);
  }
}
countdown(125); // 显示 2:05, 2:04 等

使用 requestAnimationFrame

适用于需要高精度倒数的场景,如动画效果。

function countdown(seconds) {
  const start = Date.now();
  const end = start + seconds * 1000;

  function update() {
    const remaining = Math.max(0, end - Date.now());
    console.log(Math.ceil(remaining / 1000));
    if (remaining > 0) requestAnimationFrame(update);
  }
  update();
}
countdown(5);

标签: 倒数js
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js分组实现

js分组实现

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

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…