當我把計時代碼的setTimeout改成setInterval之后
<!DOCTYPE?html> <html> <head> ??<meta?charset="UTF-8"> ??<meta?name="viewport"?content="width=device-width,?initial-scale=1.0"> ??<meta?http-equiv="X-UA-Compatible"?content="ie=edge"> ??<title>Document</title> </head> <script?type="text/javascript"> ??var?num=0; ??function?numCount(){ ????document.getElementById('txt').value=num; ????num=num+1 ????setTimeout('numCount()',1000) ??} </script> <body> ??<input?type="text"?name="txt"?id="txt"?/> ??<input?type="button"?name="click"?value="start"?onclick="numCount()"?/> </body> </html>
改成setInterval之后:
<!DOCTYPE?html> <html> <head> ??<meta?charset="UTF-8"> ??<meta?name="viewport"?content="width=device-width,?initial-scale=1.0"> ??<meta?http-equiv="X-UA-Compatible"?content="ie=edge"> ??<title>Document</title> </head> <script?type="text/javascript"> ??var?num=0; ??function?numCount(){ ????document.getElementById('txt').value=num; ????num=num+1 ????setInterval('numCount()',1000) ??} </script> <body> ??<input?type="text"?name="txt"?id="txt"?/> ??<input?type="button"?name="click"?value="start"?onclick="numCount()"?/> </body> </html>
執(zhí)行后的結果是:0,1,3,7,15,31,63...
求解其具體計算步驟,不理解為什么是這樣的結果。
希望各位高手指點迷津!
謝謝!!
祝看到的各位,生活愉快,工作順利?。。?/p>
2016-11-13
setTimeout(‘as()’,1000)這句代碼意思是延時1000毫秒后執(zhí)行函數as(),所以做計時器時要放在函數as()里面,這樣每隔1000毫秒就調用他本身as()這個函數。如果你放在as()函數外,他就只執(zhí)行一次,秒數指加了個1.
而setInterval(‘as()’,1000)本身就是每隔1000毫秒調用as()函數,所以他不用放在as()函數里面。
2016-11-04
一樓正解
2016-11-02
因為你同時開了好幾個計時器的原因,你這個函數運行一次就開一個新的計時器的,第一次 num=0 value=0,num=1;然后調用,進入下一個函數(這時已經有兩個計數器在運行了)。value=1 ; num=num+1運行兩次,num=3;下一秒這兩個計數器又會再開兩個,就是2的n次方