问题描述:
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);
}
};
}
count(1, 10);
// 实现法二(setInterval()方法):
function count(start, end) {
console.log(start++);
var timer = setInterval(function() {
if (start <= end) {
console.log(start++);
}
}, 100);
return {
cancel: function() {
clearInterval(timer);
}
};
}
count(1, 10);
知识点:
setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式。
语法:setTimeout(code, millisec)
注意:setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
语法:setInterval(code , millisec[, "lang"])
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。