1. 程式人生 > >JS程式設計訓練 | 題16:計時器

JS程式設計訓練 | 題16:計時器

題目描述

實現一個打點計時器,要求
1、從 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一個數字,每次數字增幅為 1
2、返回的物件中需要包含一個 cancel 方法,用於停止定時操作
3、第一個數需要立即輸出

思路一:setInterval

會自動迴圈,需要設定停止

function count(start, end) {
    console.log(start);//題目的第三點要求
    start++;
    var timer = setInterval(function(){
        if(start <= end){
            console.log(start);
            start++;
        }else
{ clearInterval(timer); } },100); return{ cancel: function(){ clearInterval(timer); } } }

思路二:setTimeout

有點遞迴的意思,最後要返回一個cancel方法

function count(start, end) {
    if(start <= end){
        console.log(start);
        start++;
        timer = setTimeout(function
()
{count(start,end)}, 100); } return{ cancel: function(){ clearTimeout(timer); } } }