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);
}
};
}
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() 方法的参数。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。