異步:規定要作一件事,不是立馬執行這件事,須要等必定的時間,這樣的話,咱們不會等着它執行,而是繼續執行下面的操做,只有將下面的事情處理完了,纔會返回頭處理以前的事情;若是下面的事情並無處理完成,無論以前的事情有沒有到時間,都踏踏實實的給我等着;javascript
var n = 0; setTimeout(function(){ n++; console.log(n);//2->1 },1000) console.log(n);//1->0
var n = 0; setTimeout(function(){ n++; console.log(n);//2->1 },0) console.log(n);//1->0
全部的定時器都會放在任務隊列池中,時間短的放在前面;java
var n = 0; setTimeout(function(){ n++; console.log('1:'+n);//2:2 },2000) setTimeout(function(){ n++; console.log('2:'+n);//2:1 },1000) console.log(n);//1->0
若是定時器時間同樣會從上向下執行;jquery
var n =0; setTimeout(function(){ n++; console.log('1:'+n); },2000) var timer= setInterval(function(){ n++; console.log('2:'+n); if(n==5){ clearInterval(timer); } },1000) //執行順序 //2:1 //1:2 //2:3 //2:4 //2:5
for 循環執行完成後纔會走綁定事件ajax
for(var i = 0;i < oLis[i].length;i++) { oLis[i].onclick = funciton() { changeEvent(i);//i永遠是最後一個 } }
經過ajax和setTimeout輔助實現編程
//jquery中的$.get方法等... $.get('url', function(p) { //some }); //藉助於setTimeout、setInterval function f1(callback){ setTimeout(function () { // f1的任務代碼 callback(); // step3 }, 1000); } f1();//setep1 console.log('x');//step2
若是該調用須要耗費不少時間,執行隊列就會因等待而阻塞,採用回調函數,執行隊列繼續進行,等到調用結束,經過調用回調函數的方式,通知執行隊列,處理執行結果.異步