setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,一般用于定时器、延迟执行,在表单验证中使用频繁,节流。
setInterval()可以在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除。
setTimeout()只执行一次,
setInterval可以多次调用。
setTimeout可以通过更改变量的数值来更改时间/速度,
setInterval不可以,故一般会采用防抖来控制速度。
setInterval(function{ },100)
在setInterval的里指定的周期是100毫秒,但它并不能保证两个函数之间调用的间隔一定是100毫秒,这和JavaScript运行在单线程的环境中有关,后期再具体分析
故定时器时一般不采用setInterval,会出现时间不受控,有可能越来越快等现象,采用 setTimeout回调函数,既可以实现无限循环的功能,又不会有setInterval的这些弊端。