1.这里不考虑线程问题。把javascript想象成在时间线上运行,页面载入时,首先执行的是《script》标签中的代码,之后,将执行更多代码,当进程空闲时,下个代码就被触发并执行
如图:
2.定时器的队列工作方式是:当特定的时间过去后将代码插入;
关于定时器要记住最重要的事情是:制定的时间间隔表示何时将代码添加到队列中;
而不是何时执行代码;
给队列添加代码并不意味值会立即执行,只表示会尽快执行。设定一个200MS
后执行的定时器不代表200ms后代码就立刻执行,只表示200ms后被添加到对
列中,如果在这个时间点上队列中没有其他东西,那么代码就被执行;
下图:
设置了一个点击事件,首先将click事件加入队列,click执行后才调用settimeout();再有250ms
后制定的代码才被添加到队列中等待;而click 事件执行也是需要时间的,所以定时器代码可能在300ms后才被执行;