setInterval(“run()”,1000);和setInterval(run(),100)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了setInterval(“run()”,1000);和setInterval(run(),100)相关的知识,希望对你有一定的参考价值。

javascript
setInterval(“run()”,1000);和
setInterval(run(),100) 的区别是什么?

前者setInterval(“run()”,1000)可以理解为每1000毫秒定时器运行一次run()函数;而后者没有引号的setInterval(run(),100)可以理解为每100毫秒定时器循环一次run()函数的结果;对于函数的结果:当页面加载完就会自动出现,所以后者定时器循环的只是页面加载后的那一个结果。
这是我的理解,请路过的大神指正批评。
参考技术A setInterval("run()",1000); 表示每隔1000毫秒调用一次run方法 另一个 是每隔100毫秒调用一次run方法 (1000毫秒等于1秒)追问

不是这样的,后面那个我少写了一个0,也是一千毫秒。前面的是字符串,后面的方法没有加引号。运行的时候后者只运行一次。

本回答被提问者采纳

关于setInterval()的一个问题

var t = null;
setInterval(move(),1000)
function move()
alert(1)

写的这个函数为什么只能调用一次。
var t = null;
setInterval(move,1000)
function move()
alert(1)

或者
var t = null;
setInterval(“move()”,1000)
function move()
alert(1)

这样写就能一直调用。求大神指导这是怎么回事?本人新人小白...

setInterval要求第一个参数必须是含Javascript命令的字符串或函数对象,所以

setInterval("move()",1000)

以及
setInterval(move,1000)

这两个都是正确的。

setInterval(move(),1000)

当Javascript运行到这个语句时,会立即执行move这个函数,然后把函数的返回值作为setInterval的第一个参数,而由于move函数没有返回值,实际就相当于
setInterval(null, 1000)
这个当然就不会运行啦,表面看起来就是move只运行了一次。

move()和move是不相同的,move()是语句,表示要立即执行这个函数的意思;move则是一个函数对象,代表了这个函数本身,本身是不会运行的,可以把它赋值给其他对象或作为其他函数的参数。
参考技术A var num=0; //初始量 var a1=document.getElementById("dot"); //获得盒子 function one(); //执行的函数 alert("num:"+num); num++; var s1=-1;//初始化变量 function circleOne() s1=setInterval(one,3000); circleOne(); //循环开始 a1.onmouseover=function() //鼠标放到盒子上停止函数 clearInterval(s1); a1.onmouseout=function() //鼠标移出去接着执行函数 if(s1==-1) circleOne();

以上是关于setInterval(“run()”,1000);和setInterval(run(),100)的主要内容,如果未能解决你的问题,请参考以下文章

关于setInterval()的一个问题

setTimeout 与 setInterval

使用 setTimeout 来模拟一个 setInterval

jquery html JS setInterval暂停和重启

IE8兼容问题

直线进度条