当前位置:首页 > JavaScript

js 实现倒数

2026-04-06 07:49:29JavaScript

使用 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);
    seconds--;
    if (seconds < 0) {
      clearInterval(timer);
    }
  }, 1000);
}
countdown(5);

使用 async/await 实现倒数

通过 async/await 结合 setTimeout 实现倒数功能。使用异步函数和 Promise 来模拟等待效果。

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);

使用 Date 对象实现精确倒数

利用 Date 对象记录时间差,实现更精确的倒数功能。通过计算时间差来确保倒数的准确性。

js 实现倒数

function countdown(seconds) {
  const start = Date.now();
  const end = start + seconds * 1000;
  const timer = setInterval(() => {
    const remaining = Math.round((end - Date.now()) / 1000);
    if (remaining >= 0) {
      console.log(remaining);
    } else {
      clearInterval(timer);
    }
  }, 1000);
}
countdown(5);

使用 requestAnimationFrame 实现倒数

通过 requestAnimationFrame 实现高性能倒数功能。适合需要与动画或高频更新结合的倒数场景。

function countdown(seconds) {
  const start = Date.now();
  const end = start + seconds * 1000;
  function update() {
    const remaining = Math.round((end - Date.now()) / 1000);
    if (remaining >= 0) {
      console.log(remaining);
      requestAnimationFrame(update);
    }
  }
  update();
}
countdown(5);

使用生成器函数实现倒数

通过生成器函数实现倒数功能。利用生成器的暂停和恢复特性控制倒数流程。

function* countdownGen(seconds) {
  while (seconds >= 0) {
    yield seconds;
    seconds--;
  }
}

const gen = countdownGen(5);
const timer = setInterval(() => {
  const { value, done } = gen.next();
  if (done) {
    clearInterval(timer);
  } else {
    console.log(value);
  }
}, 1000);

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

相关文章

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js 实现验证码

js 实现验证码

实现验证码的 JavaScript 方法 生成随机验证码 验证码通常由随机字符(数字、字母或混合)组成。以下代码生成一个 6 位随机验证码(数字和字母混合): function generateCa…