前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编程篇(002)-js实现一个打点计时器

编程篇(002)-js实现一个打点计时器

作者头像
齐丶先丶森
发布2022-05-12 21:16:40
1.8K0
发布2022-05-12 21:16:40
举报
文章被收录于专栏:前端面试秘籍前端面试秘籍

问题描述:

1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅 1 2、返回的对象中需要包含一个 cancel 方法,用于停止定时操作 3、第一个数需要立即输出

参考答案:

方法一:setTimeout()方法

代码语言:javascript
复制
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()方法

代码语言:javascript
复制
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() 方法的参数。 注意:两个方法的第一个参数可以是字符串,也可以是函数 (1)如果是字符串, 则参数是 要执行的javascript代码串(加双引号), 当 作普通javascript语句执行即可 。和eval()差不多,执行的环境是全局,所以不能访问函数作用域的变量。 (2)如果是函数(有括弧),则参数是该函数 (不加双引号) 的返回值,即真正执行的是其返回值,作用是【数值传递】。若返回值是另一个函数对象X,则执行的是函数X里的内容;若函数没定义返回值时值为undefined,或返回值为非函数对象,则无任何执行操作。 (3)如果是函数名(无括弧),则参数是该函数对象 (不加双引号) 本身,即真正执行的就是函数中的语句,且与返回值无关,作用是【函数调用】。通过”function() { xxx(argv); }”还能访问该函数作用域链上的变量。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端面试秘籍 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档