Web前端之路

关于setTimeout()你所不知道的地方

2020-05-27  本文已影响0人  小生王浩

今天原本想要写下其他的函数的,但是刚刚遇见一个函数,也就是setTimeout,这个函数,之前一直有种写法,一直总觉得有点迷糊,相信大家会遇到过,也就是说for循环里面弄个setTimeout,然后里面想要每隔1秒钟输出一个数字

    就把for循环里面的index输出下,但是如果想要for循环里面直接写一个定时器,相信大家都可以弄出来,但是结果就不是我们想要的了,因为是定时器执行的时候我们的循环已经执行完了,所以到最后index只能是window的index了

    今天还看到一个for循环的写法的一个文章,就是把for循环分成多种的写法,看了这个应该大家就知道index为啥是window的了

地址:

https://www.cnblogs.com/similar/p/9405983.html

    这个里面有好几种,然后第四种的话就是属于分解化的了,从而得知,我们现在所使用的index本来就是属于是window的,然后之前遇见过一次,具体的看了下setTimeout的使用,然后从mdn上看到setTimeout的参数,其实后面还是可以传参的

    如果没有看到过这个,我们普遍的方法,相信大家基本都会弄一个匿名函数,然后直接执行,从里面接受一个index参数,这样也可以解决这个问题,就相当于函数里面接收的index是属于新的,有作用域效果的

    所以这样的写法也是可以的:

    然后如果知道第三个参数后,基本就可以省去这样的写法了,因为这样的写法,其实很难看,而且意思有点难懂,现在有第三个参数弄过来,基本就可以瞬间看懂了

    参数名基本都是一样的,因为换成其他的感觉就乱了,里面的i,不管是哪里的,里面的东西都是一个,这样的写法就相当于加个匿名函数类似了

    具体的语法是这样的:

    然后这个是这样的,同样的,setInterval也是一样的,语法和这个基本上算是一模一样了

    所以以后如果有类似的东西,也就不用那么麻烦的写个匿名函数传参了

    好了今天就说到这里了,想到啥说啥,什么好用什么来

上一篇下一篇

猜你喜欢

热点阅读