高级应用一下就有点懵了

Scheduling:setTimeout and setInterval

学习第一问why,有些时候我们想设定时间来实施我们的function,这就是这一章所谓的“scheduling a call”

目前有两个方法:

1.setTimeout允许立刻实施func,在一段时间以后;

2.setInterval允许重复实施func,首先在一段时间后run,在另一段时间后还是继续run。

这两种方法并不是JavaScript特有的,很多环境都support这种方式。

setTimeout

let timerId=setTimeout(func|code,[delay],[arg1],[arg2],...)

元素解释:

func|code:通常输入一个func,只写func的reference名字,而不是run过之后的func

delay:在run一个func之前的delay,用ms(1000ms=1second)计时

arg1, arg2...:这是添加到func里面的arg

如果当func|code元素里面是“alert('hello')”时,会被直接转换为func,但是一般不推荐直接使用string,而是转换成arrow func。

Canceling with clearTimeout

当可以设置时间时,也可以取消时间设置,用clearTimeout(timerId).

setInterval

这个跟上一个的语法一样,但是唯一不同的是,这个会runs不止一次。

为了停止这个call,我们应该call clearInterval(timerId).

Nested setTimeout

这个的中文我还真不知道该怎么说,就比较像recursion那种,内置func。

NS使我们设置delay时间更精细,比起setInterval。

对比以上两种,在setInterval中,func的运作时间可能会超过delay的时间,极端例子,如果func运作时间一直超过dalay,那么就会一直弹窗。

但是NS就是一直保证固定delay的时间。

Zero delay setTimeout

这一章不太看的懂。

在题里面学到的,scheduler将会invoke只有当目前的脚本✅后。

你可能感兴趣的:(高级应用一下就有点懵了)