当前位置: 代码迷 >> 综合 >> day20-21方法setInterval与setTimeout
  详细解决方案

day20-21方法setInterval与setTimeout

热度:98   发布时间:2023-12-12 03:56:17.0

JS中setTimeout()的用法详解

setTimeout(code,millisec)
code:要调用的函数后要执行的 JavaScript 代码串。(使用函数名作为调用句柄时,不能带有任何参数,也不能加函数调用运算符(),加了以后函数会立即执行,达不到想要的效果。如果非要加,必须把这个函数加引号。)

一个小技巧,它可以实现code写函数带参数。

<script language="JavaScript" type="text/javascript"> <!-- var userName="jack";
//根据用户名显示欢迎信息
function hello(_name){
        
alert("hello,"+_name);
}
//创建一个函数,用于返回一个无参数函数
function _hello(_name){
        
return function(){
           
hello(_name);    } }
window.setTimeout(_hello(userName),3000);//-->
</script>

这里定义了一个函数_hello,用于接收一个参数,并返回一个不带参数的函数,在这个函数内部使用了外部函数的参数,从而对其调用,不需要使用参数。在window.setTimeout函数中,使用_hello(userName)来返回一个不带参数的函数句柄,从而实现了参数传递的功能。
返回了一个不带参数的匿名函数,函数调用运算符运算了函数以后,返回了这个匿名函数,然后后面就可以按照我们的想法执行了。

millisec:在执行代码前需等待的毫秒数。

clearTimeout(timeoutID)
它可以让前面这个方法停下来。
timeoutID:setTimeout(code,millisec)赋值的变量名
例:

function hello(){
       
alert("hello");
}
var id=window.setTimeout(hello,5000);
document.onclick=function(){
       
window.clearTimeout(id);}
  • 此时timeoutID为id

setTimeout()重复执行:使用函数套娃法

function countSecond()
{
     x = x+1document.fm.displayBox.value=xsetTimeout("countSecond()", 1000)
}
countSecond()

JS中SetInterval()

setInterval(code,millisec[,“lang”])(第三个参数先不管啦!)
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

  • 如果想声明全局变量,变量前面不写var或let就好啦!