js实现每过1秒加1
使用 setInterval 实现每秒加1
通过 setInterval 可以定时执行函数,适合实现持续累加的功能。
let count = 0;
const timer = setInterval(() => {
count++;
console.log(count); // 替换为实际需要的操作
}, 1000);
// 停止计时器的示例(可选)
// clearInterval(timer);
使用 setTimeout 递归实现
递归调用 setTimeout 可以避免 setInterval 可能导致的执行时间偏差问题。
let count = 0;
function increment() {
count++;
console.log(count); // 替换为实际需要的操作
setTimeout(increment, 1000);
}
increment();
使用 requestAnimationFrame 实现(适合动画场景)
requestAnimationFrame 通常用于动画,但可以通过时间差模拟每秒加1。
let count = 0;
let lastTime = 0;
function increment(timestamp) {
if (timestamp - lastTime >= 1000) {
count++;
console.log(count); // 替换为实际需要的操作
lastTime = timestamp;
}
requestAnimationFrame(increment);
}
requestAnimationFrame(increment);
注意事项
- 使用
setInterval时需注意内存泄漏问题,必要时调用clearInterval停止计时器。 - 递归
setTimeout更灵活,但需确保递归调用正确终止。 requestAnimationFrame适用于浏览器环境,不适合纯计数场景。







