JS程式設計訓練 | 題16:計時器
阿新 • • 發佈:2019-02-01
題目描述
實現一個打點計時器,要求
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);
}
}
}