setinterval setinterval会立即执行吗

Window.setTimeout和window.setInterval

概念:window.setTimeout()是一个定时器,在定时器到期后执行一个函数或者指定的一段代码。返回一个timerID。Window.setInterval()是一个间歇定时器,可以称为spacer。就是反复调用一个函数或者执行一个代码段,每次调用之间有固定的时间延迟。返回一个间隔。ClearTimeout和clearInterval可以分别清除定时器和间隔器,从而停止执行。

如何使用:

SetTimeout(表达式,延迟时间)

SetInterval(表达式,交互时间)

延迟时间/交互时间以秒为单位(1000毫秒= 1秒)。

两者的区别:

setTimeout()方法在等待指定时间后执行函数内容,只执行一次传入表达式。

setInterval()方法是每隔指定的时间间隔执行一次传入表达式,并循环直到窗口关闭或clearInterval()。

SetTimeout用于延迟执行:

设x = 1;

setTimeout(()= & gt;x++,0);

console . log(x);

如果控制台输出,也就是异步调用,你会得到2

setinterval setinterval会立即执行吗

SetInterval用于间隔执行:

设x = 1;

var interval 1 = setInterval(()= & gt;x++,1000);

console . log(x);

如果异步调用,会发现X每1秒增加1。

这里有一些例子。如果你能理解意思,你可以说它会被使用。

1.简单的例子

设a = 1;

let time rid = setTimeout(function(){

a++;

console.log(‘inner:’,a);

},0);

console.log(‘outer:’,a);

2.延期执行

设I = 0;

while(我& lt10) {

setTimeout(function() {

console.log(一);

}, 1);

i++;

}

3.串行到并行执行

设data =[];

for(设I = 0;我& lt= 999;i++) {

data[i] = {

number: Math.random()

}

};

对于(字母数据项){

console . time();

setTimeout(function() {

item . number+= 1;

}, 0);

setTimeout(function() {

item . id = ‘ id:’+item . number;

}, 0);

console . time end();

}

//当数据操作的步骤太复杂,步骤太多时,可以异步执行一些操作,这样浏览器就不会卡死,同步操作也不会延迟,可以解决复杂的操作问题。也可以用Promise来实现类似的功能。

4.移除浮动层并关闭它。

ele.addEventListener(‘click ‘,function() {

设置超时(

函数(){

$ ele . hide();

}

, 500)

},假);

//这是延迟执行和DOM结合的一个例子。我们不想在事件执行后马上得到结果,而是延迟一段时间再执行。

4.DOM动画

var interval 2 = setInterval(function(){

if(ele . style . left & lt;屏幕宽度){

ele . style . left = ele . style . left+10+’ px ‘;

} else { clear interval(interval 2);}

}, 20);

// JS动画离不开定时器和区间执行器。相比较而言,用于动画的间隔更好,但要记得在满足条件后清除间隔。

//这只是一个用法示例。真正的动画需要微调。

5.试题,结合范围,看你能不能答对并说出结果和顺序原因?

测试1:

函数回调(a){

返回函数(){

alert(” Hello “+a);

}

}

设a = “世界”;

setTimeout(回调(a),1000);

A = “你好”;

测试2:

函数回调(a){

返回函数(){

alert(” Hello “+a);

}

}

设a = “世界”;

setTimeout(function() {

回调(a)();

}, 1000);

A = “你好”;

如果你能答对,那么setTimeout和setInterval的用法就都掌握了。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论