因思维新建站官网:www.inspinovation.cn
文|鲁掌柜

学过javascript的童鞋一定都知道js里有这么一个方法,setTimeout();用于在指定时间之后执行某个特定的方法,单位是毫秒。
setTimeout的表达式包含两个参数,如下
setTimeout(code, millisec);
1、setTimeout如何工作的?


定义一个方法,使用setTimeout规定500ms后执行方法,运行该代码的结果是


1004,这又是为什么呢?
这就要从js的运行来说了,在同一时间,浏览器只能运行一个js代码,当其中一个方法占据了浏览器的运行空间时,就会导致其它的js临时失效,这里实际上就是while方法一直在运行,而while方法跳出的条件是现在的时间超过初始时间1s才可以,也就导致了1s内setTimeout的方法实际上是不能被执行的,而后面的几毫秒,则是由于机器运行代码也是需要时间的,这跟机器的配置有关系。
2、setTimeout最短执行时间
在使用setTimeout的过程中,设定延迟时间是必须的,不知道有没有小伙伴试过设置延迟时间为0时是什么情况,我们用代码实际试试就知道了。


得到的结果却并不是0


本应该是0的,结果却是2。
实际上,这是浏览器不允许setTimeout的执行延迟时间为0,如果使用该方法的时候设置了延迟时间为0,浏览器会自动增加这个延迟的时间,至于最低执行的时间,这就要看浏览器了。
一个小小的setTimeout里就有这么多学问,是不是觉得前端并没有那么容易呢?其实前端还有很多有意思的方法和功能,等待大家去学习和探索~
因思维新专注于高端网站订制开发,不仅仅为您建设网站,还为您做网络营销。