1、简述下setTimeout和setInterval的区别,包括内存方面的分析。
setTimeout是执行一次自动终止,setInterval是每隔一定的时间都会执行一次,是排队执行的;
例如:setTimeout延迟时间为1秒执行,要执行的代码需要2秒来执行,这段代码上一次与下一次的执行时间为3秒,而不是1秒;
setInterval 的时间间隔为1秒,但是执行的代码需要2秒完成,它还是每次去执行这段代码,上次没执行完的代码会排队,上一次执行完下一次就立即执行,这样实际的时间间隔是2秒,如果setInterval每次执行代码的长度比时间间隔长的话就没有意义,而且队伍会越来越长,内存就被吃光了,如果某一次执行被卡住,那程序就会被堵死。