1.javascript引擎只有一个线程,强迫异步事件排队等待被执行。
2.setTimeout和setInterval本质上不同的地方是他们如何执行异步代码的。
3.如果一个定时器正在执行的时候被阻塞了,那么它将被推迟到下一个可能执行点,这会使得延迟时间有可能超过声明定时器设置的值
4.Interval如果有足够的时间来执行(大于制定的延迟时间),那么它将无延迟的一个紧接着一个执行.
原理:
计时器通过设定一定的时间段(毫秒)来异步的执行一段代码。因为javascript是一个单线程语言,计时器提供了种绕过这种语言限制来执行代码的能力。
总结:
计时器是单线程的,需要等待上一个执行完,如果上一个没有执行完,下一个需要延迟执行,直到上一个执行完.