当前位置: 首页 > news >正文

JS setTimeout和setInterval的区别

setTimeout() 是属于 window 的方法,该方法用于在指定的毫秒数调用函数或计算表达式

语法

setTimeout(code, milliseconds, param1, param2, ...)
setTimeout(function, milliseconds, param1, param2, ...)
参数描述
code/function必需。要调用一个代码串,也可以是一个函数。
milliseconds可选。执行或调用 code/function 需要等待的时间,以毫秒计。默认为 0。
param1, param2, ...可选。 传给执行函数的其他参数(IE9 及其更早版本不支持该参数)。
返回值:返回一个 ID(数字),可以将这个ID传递给 clearTimeout() 来取消执行。
setTimeout("alert('对不起, 要你久候')", 3000 )
<p id="content"> 请等三秒钟!</p>  
<script>  
setTimeout("changeState()",3000 );  
function changeState(){  
    let content=document.getElementById('content');  
    content.innerHTML="<div style='color:red'>我是三秒后显示的内容!</div>";  
}  
</script>

setTimeout() 方法可以使到浏览器不断执行一段代码或一个函数 当一个 setTimeout( ) 开始了循环的工作, 我们要使它停下来, 可使用 clearTimeout( ) 这方法。

clearTimeout() 语法:

clearTimeout(timeoutID)

timeoutID 为调用 setTimeout() 函数时所获得的返回值,使用该返回标识符作为参数,可以取消该 setTimeout() 所设定的定时执行操作。

meter1 =setTimeout("count1()", 1000)
meter2 =setTimeout("count2()", 1000)

使用 meter1 与 meter2 作为 timeoutID 的名称, 在设定 clearTimeout( ) 时, 就可指定对哪一个 setTimeout() 有效, 不会影响另一个 setTimeout() 的操作。

<form name="display1">   
    <input type="text" id="box1" name="box1" value="0" size="4" />   
    <input type="button" value="停止计时" onclick="clearTimeout(meter1)" />   
    <input type="button" value="继续计时" onclick="count1() " />   
</form>   
<p></p>  
<form name="display2">   
    <input type="text" id="box2" name="box2" value="0" size="4" />   
    <input type="button" value="停止计时" onclick="clearTimeout(meter2) " />   
    <input type="button" value="继续计时" onclick="count2( ) " />   
</form>   
<script>  
x = 0  
y = 0  
  
function count1( )  
{ 
    x = x+ 1  
    document.getElementById("box1").value= x  
    meter1=setTimeout("count1()", 1000)  
}
 
function count2( )
{ 
    y = y+ 1  
    document.getElementById("box2").value= y  
    meter2=setTimeout("count2()", 1000)  
}  
// 执行函数
count1( )  
count2( )  
</script>

1.setTimeout(设置超时)和setInterval(设置时间间隔)都属于JS中的定时器,可以规定延迟时间再执行某个操作,不同的是setTimeout在规定时间后执行完某个操作就停止了,而setInterval则可以一直循环下去。

function fun(){
  alert('hello');
}
setTimeout(fun,1000);//参数是函数名
setTimeout('fun()',1000);//参数是字符串
setInterval(fun,1000);
setInterval('fun(),1000');

上述代码中,无论是setTimeout还是setInterval,在使用函数名作为调用句柄时不能带参数,使用字符串调用时可以带参数。例如:setTimeout(‘fun(name)’,1000);

2.不再单独再定义一个函数,直接将函数调用放在一个函数里面,可以使用函数名作为调用调用句柄。

function fun(name){
  alert('hello'+' '+name);
}
setTimeout (function(){
  fun('Tom');
},1000);//参数是函数名

上述代码中,setTimeout和setInterval的区别就是setTimeout延迟一秒弹出’hello’,之后便不再运行;而setInterval则会隔一秒弹出’hello’,直至用clear来清除定时器的语法。

相关文章:

  • JavaScript 变量提升
  • JavaScript 调试
  • JavaScript 库(框架)
  • Cefsharp js调用c#与c#调用js
  • JavaScript之Window 对象
  • javascript之Navigator 对象
  • javascript之Screen 对象
  • javascript之History 对象
  • JavaScript之Location 对象
  • JavaScript 存储对象
  • 寻址 far near
  • Session原理
  • DOM选择器
  • JavaScript 全局对象
  • CMake详解
  • java 多线程基础, 我觉得还是有必要看看的
  • Js基础知识(四) - js运行原理与机制
  • laravel 用artisan创建自己的模板
  • nginx 配置多 域名 + 多 https
  • 给新手的新浪微博 SDK 集成教程【一】
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​ArcGIS Pro 如何批量删除字段
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​iOS实时查看App运行日志
  • #etcd#安装时出错
  • #QT(TCP网络编程-服务端)
  • #QT(智能家居界面-界面切换)
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (vue)页面文件上传获取:action地址
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (转)ObjectiveC 深浅拷贝学习
  • (转)为C# Windows服务添加安装程序
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET值类型变量“活”在哪?
  • :not(:first-child)和:not(:last-child)的用法
  • [1]-基于图搜索的路径规划基础
  • [20171106]配置客户端连接注意.txt
  • [20180129]bash显示path环境变量.txt
  • [2023-年度总结]凡是过往,皆为序章
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [C/C++]数据结构 深入挖掘环形链表问题
  • [FT]chatglm2微调
  • [FUNC]判断窗口在哪一个屏幕上
  • [HOW TO]如何在iPhone应用程序中发送邮件
  • [Json.net]快速入门
  • [Linux]知识整理(持续更新)
  • [nlp] grad norm先降后升再降
  • [Python] 递归返回值 为 None 的问题