JavaScript定時器

1、定時器

  1. setTimeout:循環一次。
  2. setInterval:循環屢次。
  3. clearTimeout:清除一次性定時器。
  4. 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);
複製代碼

2、回調函數

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)
})
複製代碼

3、同步代碼和異步代碼

  1. 同步代碼:前面的代碼沒有執行完,會阻塞後面的代碼執行。
  2. 異步代碼:等知足條件的時間去執行。
  3. 異步加載: 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();
    }
}
複製代碼
相關文章
相關標籤/搜索