JS定时器:SetInterval与setTimeout详解及用法

需积分: 31 0 下载量 136 浏览量 更新于2024-09-22 收藏 43KB DOC 举报
在JavaScript中,`SetInterval` 和 `setTimeout` 是两个核心的定时器函数,用于实现代码的延迟执行和定期重复执行。这两个方法都是window对象的一部分,分别用于控制任务的执行时机。 1. **setTimeout用法** - setTimeout函数的基本语法是:`window.setTimeout(function, milliseconds);` - 它接受两个参数:一个是要执行的函数(可以是函数名或字符串形式的代码)和一个延迟执行的时间,单位为毫秒。例如,`window.setTimeout(hello, 5000)` 将在5秒后执行名为`hello`的函数。 - 当函数名作为参数传递时,通常不带括号,如`window.setTimeout(hello, 5000)`,系统会在指定时间后自动调用这个函数。如果使用字符串形式,可以包含函数调用并传递参数,如`window.setTimeout("hello()", 5000)`,这时函数会被立即执行并保存到字符串中。 2. **SetInterval用法** - SetInterval与setTimeout类似,但它的特点是会周期性地重复执行。语法为:`window.setInterval(function, milliseconds);` - 在这个例子中,`window.setInterval(hello, 5000)`会每隔5秒执行一次`hello`函数。需要注意的是,如果函数的执行时间超过了指定间隔,实际执行间隔可能会更长,因为整个执行过程会累积。 - 清除重复执行的定时器也很重要,使用`clearInterval(object)`,其中object是setInterval返回的唯一标识符。例如,`var intervalId = window.setInterval(hello, 5000); clearInterval(intervalId);`可以随时停止执行。 3. **清除定时器** - 清除`setTimeout`和`SetInterval`的任务对于避免内存泄漏至关重要。如果没有正确地清除定时器,这些定时器会一直运行,直到浏览器关闭。使用`clearTimeout`和`clearInterval`可以确保定时任务在不再需要时被终止。 4. **注意事项** - 要谨慎使用这两个函数,避免在循环或递归中无限制地设置定时器,这可能导致性能问题。 - 如果需要精确控制任务的执行次数,可以结合使用`setTimeout`和计数器,或者在`SetInterval`内部检查一个标志位来决定是否继续执行。 JavaScript的`setTimeout`和`SetInterval`是开发者常用的工具,能够灵活地处理代码的执行时机和周期性任务。了解它们的使用方法和注意事项是提升JavaScript编程技能的重要部分。