相同点
- 都接受两个参数 第一个参数为执行的函数 第二个参数为时间(单位为毫秒)
- 都会返回一个数值ID,这个ID是计划执行代码的唯一标识符,可以通过它来取消该方法。取消方法都为clearTimeout();
不同点
- setInterval表示间歇调用,它的第二个参数表示每个多少毫秒重复执行代码,直至间歇调用被取消或页面被卸载。
- setTimeout表示超时调用,它的第二个参数表示等待多长时间的毫秒数,但是在该时间过去后代码并不一定执行。JavaScript是一个单线程序的解释器,因此一定时间内只能执行一段代码。为了控制要执行的代码,就有一个JavaScript任务队列。这些任务会按照将它们添加到任务队列的顺序执行。setTimeout()的第二个参数告诉JavaScript再过多长时间把当前任务添加到队列中。如果队列是空的,那么添加的代码则会立即执行;如果队列不是空的,那么添加的代码会在前面的代码执行完毕后再执行。