setTimeout用于延迟执行函数,语法为setTimeout(function, delay, params),可配合clearTimeout取消,常用于延时操作如提示、防抖等。

在JavaScript中,setTimeout 是一个用于延迟执行代码的定时器函数。它可以让指定的函数或代码片段在等待一定时间后执行一次,常用于实现延时操作,比如延迟提示、防抖、页面跳转倒计时等场景。
基本语法
setTimeout(function, delay, param1, param2, ...)
- function:要执行的函数
- delay:延迟时间,单位是毫秒(ms)
- param1, param2, ...:传递给函数的参数(可选)
也可以传入字符串形式的代码(不推荐):
setTimeout("console.log('Hello')", 1000);常见用法示例
1. 延迟执行函数
function sayHello() {console.log("你好,1秒后出现");
}
setTimeout(sayHello, 1000);
2. 传递参数
console.log(`你好 ${name},你 ${age} 岁了`);
}
setTimeout(greet, 1500, "小明", 20);
3. 使用箭头函数
setTimeout(() => {console.log("3秒后执行");
}, 3000);
清除定时器
如果想取消还未执行的 setTimeout,可以使用 clearTimeout,需要保存定时器的返回值。
const timerId = setTimeout(() => {console.log("这不会执行");
}, 2000);
// 在2秒内执行下面这行,就能取消
clearTimeout(timerId);
注意:一旦定时器触发,clearTimeout 就无效了。
注意事项
- setTimeout 的延迟时间是最小延迟,不是精确时间。如果主线程繁忙,实际执行会延迟。
- 它只执行一次,如果需要重复执行,应使用 setInterval 或递归调用 setTimeout。
- 在对象方法中使用时注意 this 指向,建议用箭头函数或 bind 绑定上下文。










