延遲函數
setTimeout(參數1,參數2)
參數1做的事件,參數2延遲多少毫秒,參數3是給參數1要做的函數傳參,
var fn1 = function(color){
document.body.style.backgroundColor = color
}
setTimeout(fn1,3000,"skyblue")
取消延遲函數,延遲函數會返回一個id,用一個變量去接收它。
var setid = setTimeout(fn1,3000,"skyblue")
clearTimeout(setid)
第三個參數,可以傳遞參數(給延遲觸發的函數傳參),就是給第一個函數來傳入的參數,如果第一個函數有多個值,可以接着傳
例子:
var fn1 = function(color,fontsize){
document.body.style.backgroundColor = color;
document.body.style.fontSize=fontsize+"px";
}
var setid = setTimeout(fn1,3000,"skyblue",100)
也可以
var fn1 = function(color,fontsize){
document.body.style.backgroundColor = color;
document.body.style.fontSize=fontsize+"px";
}
// var setid = setTimeout(fn1,3000,"skyblue",100)
setTimeout(function(){
fn1("skyblue",100)
},3000)
間隔函數
setInterval(參數1,參數2) 間隔函數
參數1要做的事,參數2時間毫秒
var fn2 = function(){
var time = new Date()
console.log(time)
document.body.innerHTML =time
}
setInterval(fn2,3000)
//取消間隔函數
setTimeout(function(){
var inter = setInterval(fn2,3000)
clearInterval(inter)
},3000)
取消延遲函數,同樣他也會有一個id,用一個變量去接收它
注意:
延遲函數放在一個事件隊列裏面,然後定了個時間即便他是0毫秒,接着去走其他的函數,只有其他函數執行完了,空閒時間纔會去走這個延遲函數。