js中setTimeout的用法

  settimeout(表達式,延遲時間); 單位:ms(毫秒);1s=1000ms; 

  setinterval(表達式,交互時間);  單位:ms(毫秒);1s=1000ms; 

  window.settimeout()

   在執行時,它從載入後延遲指定的時間去執行一個表達式或者是函數;僅執行一次;和window.cleartimeout一起使用.

  window.setinterval()

   在執行時,它從載入頁面後每隔指定的時間執行一個表達式或者是函數;(功能類似於遞歸函數);和window.clearinterval一起使用.

  1,基本用法:

   執行一段代碼: 

 var i=0;
   settimeout("i+=1;alert(i)",1000);
   執行一個函數:
   var i=0;
   settimeout(function(){i+=1;alert(i);},1000);

   //比較上面的兩種方法的不同。

   下面再來一個執行函數的:

  var i=0;
  function test(){
    i+=1;
    alert(i);
  }
  settimeout("test()",1000);

  也可以這樣:

  settimeout(test,1000);

   總結:

   settimeout的原型是這樣的:

   itimerid = window.settimeout(vcode, imilliseconds [, slanguage])

  settimeout有兩種形式

  settimeout(code,interval)

  settimeout(func,interval,args)

  其中code是一個字符串

  func是一個函數.

  注重"函數"的意義,是一個表達式,而不是一個語句.

  比如你想週期性執行一個函數

 function a(){
   //...
 }
  可寫爲
  setinterval("a()",1000)
  或
  setinterval(a,1000)


  這裏注重第二種形式中,是a,不要寫成a(),切記!!!

  展開來說,不管你這裏寫的是什麼,假如是一個變量,一定是一個指向某函數的變量;假如是個函數,那它的返回值就 要是個函數

  2,用settimeout實現setinterval的功能

  思路很簡單,就是在一個函數中調用不停執行自己,有點像遞歸

  var i=0;
  function xilou(){
    i+=1;
    if(i>10){alert(i);return;}
    settimeout("xilou()",1000);
    //用這個也可以
    //settimeout(xilou,1000);
  }


window.setTimeout(func,delay);
func,代表所要執行的函數或代碼字符串。
delay,延時參數,單位爲毫秒,一秒=1000毫秒。

func中傳遞的函數或語句有變量輸入時,變量的取值以延時後的執行時段時的取值爲準,不以代碼執行時段的值爲準。例如:

代碼:

for(var i=1;i<=50;i++)
{
       window.setTimeout("document.write(i)",1000);
}


這樣寫的意義是在程序執行完1秒後打印50個i,此時程序已執行完,i的取值爲"51";
如果要是程序每隔1秒打印一個數,則程序要改寫爲

代碼:

for(var i=1;i<=50;i++)
{
       window.setTimeout("document.write("+i+")",i*1000);
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章