当前位置:首页 > JavaScript

js实现settime

2026-02-01 18:05:23JavaScript

setTimeout 的基本用法

setTimeout 是 JavaScript 中用于延迟执行代码的方法。它接受一个回调函数和一个延迟时间(毫秒),在指定时间后执行回调函数。

setTimeout(() => {
  console.log('这段代码将在 1 秒后执行');
}, 1000);

清除 setTimeout

setTimeout 返回一个定时器 ID,可以用于清除定时器。使用 clearTimeout 可以取消尚未执行的定时器。

const timerId = setTimeout(() => {
  console.log('这段代码不会执行');
}, 1000);

clearTimeout(timerId);

传递参数给回调函数

setTimeout 允许传递额外的参数给回调函数,这些参数会作为回调函数的参数。

js实现settime

setTimeout((name, age) => {
  console.log(`姓名: ${name}, 年龄: ${age}`);
}, 1000, '张三', 25);

使用箭头函数

箭头函数可以简化 setTimeout 的回调写法,同时避免 this 绑定问题。

const obj = {
  name: '李四',
  greet: function() {
    setTimeout(() => {
      console.log(`你好, ${this.name}`);
    }, 1000);
  }
};

obj.greet();

递归 setTimeout

递归调用 setTimeout 可以实现类似 setInterval 的重复执行效果,但能更精确控制每次执行的间隔。

js实现settime

function repeat() {
  console.log('每 1 秒执行一次');
  setTimeout(repeat, 1000);
}

setTimeout(repeat, 1000);

浏览器和 Node.js 中的差异

在浏览器中,setTimeout 的最小延迟时间通常为 4ms。Node.js 中则没有这个限制,但实际延迟可能受事件循环影响。

// 浏览器中最小延迟演示
setTimeout(() => {
  console.log('即使设置为 0,实际延迟至少 4ms');
}, 0);

替代方案 requestAnimationFrame

对于动画场景,requestAnimationFramesetTimeout 更适合,它能与浏览器刷新率同步。

function animate() {
  console.log('动画帧');
  requestAnimationFrame(animate);
}

requestAnimationFrame(animate);

标签: jssettime
分享给朋友:

相关文章

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…

js实现菜单

js实现菜单

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

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…

js 实现超链接

js 实现超链接

使用 HTML 的 <a> 标签 在 JavaScript 中动态创建超链接可以通过操作 DOM 实现。通过 document.createElement 创建一个 <a> 元…

js实现点击隐藏

js实现点击隐藏

使用CSS类切换实现点击隐藏 通过添加或移除CSS类来控制元素的显示与隐藏。定义一个隐藏样式类如.hidden { display: none; },通过事件监听切换该类。 document.que…