1,setTimeout(間隔延遲時間運行 以后不會運行)
1)全局作用域(window)下的內置函數(shù)

圖片.png
2)返回值:
setTimeout(function,dely),定時器的編號
3)運行機制--異步
console.log("strat....");
setTimeout("console.log("1")",1000);
console.log("end....");
//輸出:
start....
end....
1
第一個參數(shù)是字符串、函數(shù)名、匿名函數(shù)
總結運行機制:
例子一:
setTimeout("console.log("1")",0);
一大段代碼需要運行1000ms
原理:1000ms后一大段代碼運行完成,立馬輸出1
例子二:
setTimeout("console.log("1")",1000);
一大段代碼需要運行1000ms
原理:1000ms后一大段代碼運行完成,立馬輸出1
例子三:
setTimeout("console.log("1")",1000);
一大段代碼需要運行2000ms
原理:2000ms后一大段代碼運行完成,立馬輸出1
執(zhí)行到setTimeout,把執(zhí)行函數(shù)放到隊列里面,后面的所有代碼放到隊列里面,執(zhí)行后面的所有代碼,當后面的所有代碼都執(zhí)行完成后如果時間已經(jīng)到了,立馬輸出setTimeout的函數(shù)的結果。
注意:延遲時間只是一個近似的時間,如:
延遲0ms :10ms后執(zhí)行
延遲9ms :10ms后執(zhí)行
延遲11ms:20ms后執(zhí)行
4)函數(shù)使用的特點
正確寫法:
setTimeout(fn,1000);//直接是函數(shù)的名稱沒有括號,1000毫秒后執(zhí)行
setTimeout(fn(),1000);//fn()是函數(shù)執(zhí)行,這里讀到fn()時,會立即執(zhí)行函數(shù)
2,setInterval(間隔設置時間運行,再過延遲時間運行)

圖片.png