同步和异步
- 同步:一件一件的做。
- 异步:几件事一起做。
- 由于js是一个单线程执行,所以当遇到某些需要等待执行的内容时,就会导致线程的执行的阻塞,为了杜绝这种情况,就将需要等待执行的代码 ,放到一个任务队列中去执行,主线程就继续执行可以马上得到结果的程序就是同步程序,放到任务队列中去执行的就是异步程序。等到主线程中的所有同步代码执行完成后,再去轮询任务队列 将准备好的异步代码放入主线程继续执行。
- 同步先执行,异步后执行:一般 回调函数 事件处理函数 都是异步函数
-
window.onload = function(){ var aLi = document.getElementsByTagName('li'); for(var i = 0; i < aLi.length; i++){//for循环就是同步执行的代码 aLi[i].onclick = function(){//事件处理函数 是异步函数 console.log(i);//4 // console.log(aLi[i].innerHTML); } } for(var i = 0; i < 4; i++){ setTimeout(function(){//定时器的函数也是 异步函数 console.log(i); },0) } }