setTimeout和setInterval

2020-01-15  本文已影响0人  agamgn

前言

计时器setTimeout和setInterval是我们经常会用到的,它用于在指定的毫秒数后调用函数或计算表达式。

一、setTimeout的语法:

setTimeout(cb, time);

setTimeout传入的是两个参数,第一个参数是cb代表的是回调函数callback,第二个代表的是时间,以ms计算。
作用:setTimeout的含义是定时器,到达一定的时间触发一次

1.1、setTimeout原理

首先看一段代码:


demo1.png

在上面的代码中,定义了一个setTimeout定时器,延时时间是500毫秒。
你是不是觉得打印结果是: 500

可事实却是出乎你的意料,打印结果是这样的(也许你打印出来会不一样,但肯定会大于1000毫秒): demo2.png 究其原因,这是因为 JavaScript是单线程执行的。也就是说,在任何时间点,有且只有一个线程在运行JavaScript程序,无法同一时候运行多段代码。
但是浏览器的内核是多线程的,多个线程在内核的相互配合下保持同步:

二、setInterval的语法:

setInterval(cb, time);

setInterval传入的也是两个参数,第一个参数是cb代表的是回调函数callback,第二个代表的也是时间,以ms计算。
作用:setInterval含义是计时器,到达一定时间触发一次,并且会持续触发。

三、参考

setTimeout 的黑魔法
js中两种定时器,setTimeout和setInterval的区别
代码地址

上一篇 下一篇

猜你喜欢

热点阅读