JavaScript定時器
摘要:
setTimeout
setInterval
clearTimeout
clearInterval
function boom(){
console.log('boom');
}
setTimeout(boom, 1000); //1秒後執行程式碼
functi...
setTimeout setInterval clearTimeout clearInterval
function boom(){ console.log('boom'); } setTimeout(boom, 1000); //1秒後執行程式碼 function go(){ console.log('起床了') } setInterval(go, 3000); //每隔3秒不斷執行程式碼 //執行一個迴圈定時器,並將返回值賦給timer這個變數 var timer = setInterval(function(){ console.log('2'); },1000); console.log(timer); //取消定時器需要有索引值,timer儲存的是動畫佇列裡的索引值(key) ,clearInterval停止動畫需要一個索引值 clearInterval(timer); 複製程式碼
二、回撥函式
function test(d){ var a = 1; var b = a +1; var c = b; //傳進來的是個函式 ,所以能加括號執行 最後把處理的結果傳給d,這個函式d被稱作回撥函式 d(a,b,c); } //將函式作為引數傳遞 test(function(a,b,c){ console.log(a,b,c) }) 複製程式碼
三、同步程式碼和非同步程式碼
- 同步程式碼:前面的程式碼沒有執行完,會阻塞後面的程式碼執行。
- 非同步程式碼:等滿足條件的時間去執行。
- 非同步載入: 1)定時器,動畫幀 2)事件繫結的內容 3)Ajax採用的也是非同步操作 4)回撥函式
//發現時間大概在2毫秒左右,因為先執行同步程式碼for迴圈,再去執行定時器。 console.time(); setTimeout(function(){ console.timeEnd(); },0); for(var i = 0 ;i < 10000;i++){ for(var j = 0;j< 10000;j++){ Math.random(); } } 複製程式碼