JS-延时器

setTimeout(code,delay),表示延时delay毫秒后执行code代码

code代码需要加入引号中

如果code代码较多可以封装到函数中,这里可以写函数的名称,不需要加引号

代码执行一次后,不再执行

这个方法返回一个int的值,表示延时器标识,可以用来清除延时器clearTimeout(ID)

### JavaScript 中 `setInterval` 和 `setTimeout` 的使用方法 #### 1. 定时器 (`setInterval`) 定时器通过 `setInterval` 方法实现,用于按照固定的时间间隔重复执行某段代码。 以下是基本语法: ```javascript var intervalId = setInterval(function() { // 要执行的代码 }, delay); ``` - **参数说明**: - 第一个参数是一个回调函数,表示要执行的任务。 - 第二个参数是时间间隔(单位为毫秒),即每隔多长时间执行一次该任务[^1]。 - **停止定时器**: 使用 `clearInterval(intervalId)` 来停止定时器。如果不清除定时器,则它会持续运行直到页面关闭[^2]。 示例代码如下: ```javascript let count = 0; const timer = setInterval(() => { console.log(`计数: ${count}`); if (count === 5) { clearInterval(timer); // 当计数达到5时停止定时器 } count++; }, 1000); ``` --- #### 2. 延时器 (`setTimeout`) 延时器通过 `setTimeout` 方法实现,用于在指定的时间后仅执行一次某段代码。 以下是基本语法: ```javascript var timeoutId = setTimeout(function() { // 要执行的代码 }, delay); ``` - **参数说明**: - 第一个参数是一个回调函数,表示要执行的任务。 - 第二个参数是延迟时间(单位为毫秒),即等待多长时间后再执行该任务[^4]。 - **取消延时器**: 使用 `clearTimeout(timeoutId)` 可以提前终止延时器的操作。 示例代码如下: ```javascript console.log('开始'); setTimeout(() => { console.log('5秒钟后执行'); }, 5000); console.log('结束'); ``` --- #### 3. 使用注意事项 - **性能问题**:当多个定时器叠加时可能会占用较多资源,因此务必记得清理不再使用的定时器。 - **精确度限制**:由于浏览器调度的原因,实际触发时间可能稍晚于设定值,尤其是在低配设备上。 - **推荐实践**:对于需要长期循环的任务,可以考虑用递归调用 `setTimeout` 替代 `setInterval`,这样能更好地控制每次执行之间的依赖关系[^3]。 --- #### 4. 示例对比:`setInterval` vs `setTimeout` 下面展示如何用两种方式实现相同功能——每秒打印一次当前时间: ##### 使用 `setInterval` ```javascript function logTime() { console.log(new Date().toLocaleTimeString()); } const interval = setInterval(logTime, 1000); // 如果想停止 // clearInterval(interval); ``` ##### 使用 `setTimeout` ```javascript function recursiveLogTime() { console.log(new Date().toLocaleTimeString()); setTimeout(recursiveLogTime, 1000); } recursiveLogTime(); // 不需要显式清除,除非手动中断逻辑 ``` --- ### 总结 - `setInterval` 更加简洁明了,适合简单的周期性操作。 - `setTimeout` 则提供了更灵活的方式处理复杂场景下的异步流程管理。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值