*js是实实在在的单线程语言,在一小个时刻,在(js的执行对列)只有一个执行,一个没有完,另一个必须等待,什么都不做,只有抖着腿的等;
*本来语言本身是同步的,之所以是异步执行,是因为在浏览器环境中,调用了浏览器的api,
一,httpajax,是单线程调用了浏览器的进程,由它来发http请求,之后得到了返回值,就插入了一个队列(异步队列),
当js的执行对列为空(没有执行函数)的时候,在按照异步队列的顺序,将返回值插入执行对列,然后在执行
二,setTimeout, 和 eventListener之类的事件监听语句,当被触发的时候啊,被在浏览器的事件处理队列中执行,然后有了返回值之后,
将返回值插入异步队列,然后啊,当执行对列为空的时候再一一插入
三,回调函数,这个我感觉就是改变了函数的执行顺序哟!,仅仅是将排在后面的某个方法的执行的顺序放到某个回调中,以提前执行.