setTimeout和setInterval的用法

本文深入探讨了JavaScript中的计时事件,包括setTimeout和setInterval方法的使用,以及如何通过clearTimeout和clearInterval方法来控制它们的执行。文章提供了实例代码,帮助读者理解如何在网页上实现延迟和周期性的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript 计时事件

JavaScript可以按时间间隔执行。这称为计时事件。window对象允许以指定的时间间隔执行代码。这些时间间隔称为定时事件。与JavaScript一起使用的两个关键方法是:

  • setTimeout(function, milliseconds)
  • 在等待指定的毫秒数后执行一个函数。

  • setInterval(function, milliseconds)
  • 与setTimeout()相同,但是连续重复执行该函数。

setTimeout()和setInterval()是HTML DOM Window对象的方法。

setTimeout()方法

//语法:
window.setTimeout(function, milliseconds);

window.setTimeout()可以在没有window前缀的情况下编写该方法。

第一个参数是要执行的函数。第二个参数表示执行前的毫秒数。

单击按钮。等待3秒钟,页面将提示“Hello”:

<button onclick="setTimeout(myFunction, 3000)">Try it</button>
<script>
function myFunction() {
  alert('Hello');
}
</script>

如何停止执行setTimeout?

clearTimeout()方法停止执行setTimeout()中指定的函数。

window.clearTimeout(timeoutVariable)

window.clearTimeout()可以在没有window前缀的情况下编写该方法。

clearTimeout()方法使用从setTimeout()以下返回的变量:

myVar = setTimeout(function, milliseconds);
clearTimeout(myVar);

如果函数尚未执行,则可以通过调用clearTimeout()方法来停止执行:

与上面的示例相同,但添加了“停止”按钮: 

<button onclick="myVar = setTimeout(myFunction, 3000)">Try it</button>
<button onclick="clearTimeout(myVar)">Stop it</button>

setInterval()方法

setInterval()方法在每个给定的时间间隔重复给定的函数。

window.setInterval(function, milliseconds);

window.setInterval()可以在没有window前缀的情况下编写该方法。

第一个参数是要执行的函数。

第二个参数表示每次执行之间的时间间隔的长度。

此示例每秒执行一次名为“myTimer”的函数(如数字手表)。

var myVar = setInterval(myTimer, 1000);
function myTimer() {
  var d = new Date();
  document.getElementById("demo").innerHTML = d.toLocaleTimeString();
}

如何停止执行setInterval?

clearInterval()方法停止执行setInterval()方法中指定的函数。

window.clearInterval(timerVariable)

window.clearInterval()可以在没有window前缀的情况下编写该方法。

clearInterval()方法使用从setInterval()以下返回的变量:

myVar = setInterval(function, milliseconds);
clearInterval(myVar);

与上面的示例相同,但我们添加了“停止时间”按钮:

<p id="demo"></p>
<button onclick="clearInterval(myVar)">Stop time</button>
<script>
var myVar = setInterval(myTimer, 1000);
function myTimer() {
  var d = new Date();
  document.getElementById("demo").innerHTML = d.toLocaleTimeString();
}
</script>

更多HTML BOM Window对象的方法

`setTimeout` `setInterval` 都是 JavaScript 中用于定时执行代码的方法,但它们在功能使用上有一些关键的区别。 1. **setTimeout**: - **功能**:它会执行一次指定的回调函数,在给定的时间(毫秒)后延迟执行。如果你不再调用 clearTimeout() 来清除定时器,那么该回调将在设置的时间后单次执行一次。 - **参数**:`setTimeout(function, delay)`,第一个参数是你想执行的函数,第二个参数是延迟时间。 - **返回值**:`setTimeout` 返回一个整数ID,你可以用来取消这个定时器(通过`clearTimeout(id)`)。 2. **setInterval**: - **功能**:它会在设定的时间间隔内不断重复地执行回调函数,直到你主动停止或浏览器关闭。通常用于定期更新数据、轮询服务器等场景。 - **参数**:`setInterval(function, interval)`,第一个参数同上,第二个参数是重复执行之间的间隔时间(毫秒)。 - **返回值**:`setInterval` 也返回一个整数ID,可以通过`clearInterval(id)`来暂停或终止定时任务。 **用法示例**: ```javascript // 使用 setTimeout function delayedMessage() { console.log('Hello, world!'); } setTimeout(delayedMessage, 2000); // 延迟2秒后打印消息 // 使用 clearInterval (停用定时器) let intervalId = setInterval(function() { console.log('Tick...'); }, 1000); // 每秒打印 "Tick..." // 如果想要停止计时器 clearInterval(intervalId); ``` **相关问题--:** 1. `setTimeout` `setInterval` 如何控制执行次数? 2. 在什么情况下应该选择 `setInterval` 而不是 `setTimeout`? 3. 如何优雅地停止 `setInterval` 定时器?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值