javascript
JS实现一个打点计时器
要求:(題源:牛客網在線編程)
1)、從 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一個數字,每次數字增幅為 1
2)、返回的對象中需要包含一個 cancel 方法,用于停止定時操作
3)、第一個數需要立即輸出
實現法一(setTimeout()方法):
function count(start, end) {if(start <= end){console.log(start++);st = setTimeout(function(){count(start, end)}, 100);}return {cancel: function(){clearTimeout(st);}} }setTimeout()方法用于在指定的毫秒數后調用函數或計算表達式。
語法:setTimeout(code, millisec)
注意:setTimeout() 只執行 code 一次。如果要多次調用,請使用 setInterval() 或者讓 code 自身再次調用 setTimeout()。
?
實現法二(setInterval()方法):
function count(start, end) {console.log(start++);var timer = setInterval(function () {if (start <= end) {console.log(start++)} }, 100);return {cancel: function () {clearInterval(timer)}} }setInterval() 方法可按照指定的周期(以毫秒計)來調用函數或計算表達式。
語法:setInterval(code ,millisec[,"lang"])
setInterval() 方法會不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數。
?
注意:兩個方法的第一個參數可以是字符串,也可以是函數
(1)如果是字符串, 則參數是 要執行的javascript代碼串(加雙引號), 當 作普通javascript語句執行即可 。 和eval()差不多,執行的環境是全局,所以不能訪問函數作用域的變量。
(2)如果是函數(有括弧),則參數是該函數 (不加雙引號) 的返回值,即真正執行的是其返回值,作用是【數值傳遞】。若返回值是另一個函數對象X,則執行的是函數X里的內容;若函數沒定義返回值時值為undefined,或返回值為非函數對象,則無任何執行操作。
(3)如果是函數名(無括弧),則參數是該函數對象 (不加雙引號) 本身,即真正執行的就是函數中的語句,且與返回值無關,作用是【函數調用】。通過”function() { xxx(argv); }”還能訪問該函數作用域鏈上的變量。
?
?
總結
以上是生活随笔為你收集整理的JS实现一个打点计时器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么用matlab画国旗,Matlab考
- 下一篇: 网站修改了文档html默认保存路径,我在