当前位置: 首页 > 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详解
  • [LeetCode] Wiggle Sort
  • AngularJS指令开发(1)——参数详解
  • Fabric架构演变之路
  • Fastjson的基本使用方法大全
  • JavaScript 基本功--面试宝典
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Linux中的硬链接与软链接
  • MySQL QA
  • Objective-C 中关联引用的概念
  • Spring核心 Bean的高级装配
  • Sublime text 3 3103 注册码
  • vue.js框架原理浅析
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 机器学习中为什么要做归一化normalization
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 移动端解决方案学习记录
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​ssh免密码登录设置及问题总结
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (2015)JS ES6 必知的十个 特性
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (23)Linux的软硬连接
  • (Forward) Music Player: From UI Proposal to Code
  • (zhuan) 一些RL的文献(及笔记)
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (四)linux文件内容查看
  • (四)模仿学习-完成后台管理页面查询
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET Core中的去虚
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @hook扩展分析
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • []Telit UC864E 拨号上网
  • [100天算法】-实现 strStr()(day 52)
  • [1127]图形打印 sdutOJ