溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

JS中setTimeout()和 interval()方法的用法

發(fā)布時(shí)間:2020-04-07 07:11:23 來(lái)源:網(wǎng)絡(luò) 閱讀:675 作者:anbaojia 欄目:web開(kāi)發(fā)

JS中setTimeout()方法的用法

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

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

  window.settimeout()

   在執(zhí)行時(shí),它從載入后延遲指定的時(shí)間去執(zhí)行一個(gè)表達(dá)式或者是函數(shù);僅執(zhí)行一次;和window.cleartimeout一起使用.

  window.setinterval()

   在執(zhí)行時(shí),它從載入頁(yè)面后每隔指定的時(shí)間執(zhí)行一個(gè)表達(dá)式或者是函數(shù);(功能類(lèi)似于遞歸函數(shù));和window.clearinterval一起使用.

  1,基本用法:

   執(zhí)行一段代碼:  var i=0;

   settimeout("i+=1;alert(i)",1000);

   執(zhí)行一個(gè)函數(shù):

   var i=0;

   settimeout(function(){i+=1;alert(i);},1000);

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

   下面再來(lái)一個(gè)執(zhí)行函數(shù)的:

  var i=0;

  function test(){

    i+=1;

    alert(i);

  }

  settimeout("test()",1000);

  也可以這樣:

  settimeout(test,1000);

   總結(jié):

   settimeout的原型是這樣的:

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

  settimeout有兩種形式

  settimeout(code,interval)

  settimeout(func,interval,args)

  其中code是一個(gè)字符串

  func是一個(gè)函數(shù).

  注重"函數(shù)"的意義,是一個(gè)表達(dá)式,而不是一個(gè)語(yǔ)句.

  比如你想周期性執(zhí)行一個(gè)函數(shù)

 function a(){

   //...

 }

  可寫(xiě)為

  setinterval("a()",1000)

  或

  setinterval(a,1000)

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

  展開(kāi)來(lái)說(shuō),不管你這里寫(xiě)的是什么,假如是一個(gè)變量,一定是一個(gè)指向某函數(shù)的變量;假如是個(gè)函數(shù),那它的返回值就 要是個(gè)函數(shù)

  2,用settimeout實(shí)現(xiàn)setinterval的功能

  思路很簡(jiǎn)單,就是在一個(gè)函數(shù)中調(diào)用不停執(zhí)行自己,有點(diǎn)像遞歸

  var i=0;

  function xilou(){

    i+=1;

    if(i>10){alert(i);return;}

    settimeout("xilou()",1000);

    //用這個(gè)也可以

    //settimeout(xilou,1000);

  }

window.setTimeout(func,delay);

func,代表所要執(zhí)行的函數(shù)或代碼字符串。

delay,延時(shí)參數(shù),單位為毫秒,一秒=1000毫秒。

func中傳遞的函數(shù)或語(yǔ)句有變量輸入時(shí),變量的取值以延時(shí)后的執(zhí)行時(shí)段時(shí)的取值為準(zhǔn),不以代碼執(zhí)行時(shí)段的值為準(zhǔn)。例如:

代碼:

for(var i=1;i<=50;i++)

{

       window.setTimeout("document.write(i)",1000);

}

這樣寫(xiě)的意義是在程序執(zhí)行完1秒后打印50個(gè)i,此時(shí)程序已執(zhí)行完,i的取值為"51";

如果要是程序每隔1秒打印一個(gè)數(shù),則程序要改寫(xiě)為

代碼:

for(var i=1;i<=50;i++)

{

       window.setTimeout("document.write("+i+")",i*1000);

}

#Javascr


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI