setTimeout() 和 setInterval() 的用法和区别

1、setTimeout()

setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。

可使用 clearTimeout() 方法来阻止函数的执行。

(1)语法

setTimeout(code, milliseconds, param1, param2, ...)

setTimeout(function, milliseconds, param1, param2, ...)

(2)参数

  code/function =>必需。要调用一个代码串,也可以是一个函数。

  milliseconds =>可选。执行或调用 code/function 需要等待的时间,以毫秒计。默认为 0。

  param1, param2, ... =>可选。 传给执行函数的其他参数(IE9 及其更早版本不支持该参数)。

(3)返回值

  返回一个 ID(数字),可以将这个 ID 传给 clearTimeout() 取消执行

例子

//3秒钟隐藏 div 标签

setTimeout(function() { $("#divShowInfo").fadeOut("slow"); }, 3000);

2、setInterval()

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

语法、参数、返回值 同setTimeout()

例子

var myVar;

function myFunction() {

myVar = setInterval(alertFunc, 3000);

}

function alertFunc() {

alert("Hello World!");

}

3、 clearTimeout()

例子

var myVar;

function myFunction()

{

myVar = setTimeout(function(){ alert("Hello") }, 3000);

}

function myStopFunction()

{

clearTimeout(myVar);

}

setTimeout() 和 clearTimeout() 结合的例子 计数器,可停止

<button οnclick="startFun()">开始</button>

<input type="text" id="txtNum">

<button οnclick="stopFun()">停止</button>

<script>

var num = 0;

var t;

var begin=0;

function AddNum()

{

$("#txtNum").val()=num ;

num+=1;

t=setTimeout(function(){AddNum()},1000);

}

function startFun()

{

if(!begin)

{

begin=1;

AddNum();

}

}

function stopFun()

{

clearTimeout(t);

begin=0;

}

</script>

`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、付费专栏及课程。

余额充值