setInterval() 方法是 JS 中比較經常使用的一個方法。setInterval() 方法能夠按照指定的週期 ( 毫秒 ) 來調用函數方法或計算表達式。javascript
setInterval() 方法會不停地調用函數,直到 clearInterval() 被調用或窗口關閉。由 setInterval() 返回的 ID 值可用做 clearInterval() 方法的參數。java
注:1000 毫秒 = 1秒函數
setInterval() 語法:測試
setInterval(code, millisec, lang)
參數 | 描述 |
---|---|
code | 必須。要調用的函數或要執行的代碼串。 |
millisec | 必須。週期性的執行或調用 code 之間的時間間隔。 |
lang | 可選。JScript | VBScript | JavaScript |
setInterval() 返回值:number值,是一個能夠傳遞給 Window.clearInterval() 從而取消對 code 的週期性執行的值。測試代碼:spa
var id = setInterval("foo1()",100); alert(typeof(id));
setInterval() 做爲 JavaScript 的一個計時事件,可使代碼在一個設定的時間內反覆的執行屢次,而不是在函數被調用後當即執行,這就是咱們的計時事件。JavaScript 的另外一個計時事件是 setTimeout(),他們兩個都是 HTML DOM Window 對象的方法。code
由於是 Window 的對象方法,因此加前綴 " window. " 對調用沒有什麼影響。另外,clearInterval() 也是 Window 的對象方法。對象
var foo1 = new Function("return alert('!!!')");//正常運行,並且剛開始時不會執行 setInterval(foo1,2000);//注意:Function不能寫成function
var foo2 = new Function("alert('!!!')");//正常運行,並且剛開始時不會執行 setInterval(foo2,2000);
var foo3 = new Function(return alert('!!!'));//錯誤,拋出異常:"Uncaught SyntaxError: Unexpected token return" setInterval(foo3,2000);
var foo4 = new Function(alert('!!!'));//剛開始運行一次,沒有異常 setInterval(foo4,2000);
setInterval(function(){alert("!!!")},2000);//正常運行,並且剛開始時不會執行
setInterval(foo5(),2000);//剛開始運行一次,沒有異常,執行一次的緣由多是載入過程當中執行 function foo5(){ alert("!!!"); };
function foo6(){ alert("!!!"); }; setInterval(foo3(),2000);//註釋掉這裏不會運行函數,因此並非載入腳本時自動執行的函數,而是被setInterval()調用執行了一次
setInterval("foo7()",2000);//正常運行,並且剛開始時不會執行 function foo7(){ alert("!!!"); };
function foo8(){//正常運行,並且剛開始時不會執行 alert("!!!"); }; setInterval("foo8()",2000);
setInterval("foo9",2000); function foo9{//錯誤,拋出異常:"Uncaught SyntaxError: Unexpected token {" alert("!!!"); };
function foo10(){//不會執行調用函數 alert("!!!"); }; setInterval("foo10",2000);
function foo11(){//正常運行,並且剛開始時不會執行 alert("!!!"); }; setInterval(foo11,2000);
要想經過 setInterval() 方法正常調用執行函數,有三種方法:token
附:若是須要中止計時事件,則須要這樣:事件
var id = setInterval("foo1()",100); function foo2(){ clearInterval(id); }
中止計時事件須要給出被中止的事件的 id。ip