前端在线编程题5

目录:
13.避免全局变量
14.正确的使用 parseInt
15.计时器

13.避免全局变量

要求:给定的 js 代码中存在全局变量,请修复:
思路:在Javascript语言中,声明变量使用的都是关键字var,如果不使用var而直接声明变量,则该变量为全局变量。

function globals() {
    //只需要在声明myObject时加上var就行了
    var myObject = {
      name : 'Jory'
    }; 
    return myObject;
}

14.正确的使用 parseInt

要求:修改 js 代码中 parseInt 的调用方式,使之通过全部测试用例。
示例
输入 ‘0x12’
输出 0

1)parseInt(string, radix)
//当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

思路:举例,如果 string 以 “0x” 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

function parse2Int(num)
{
    return parseInt(num,10);
}
//解释来自于W3school

2)对于无效的数字,直接忽略。因此用正则表达式将首次匹配到的数字组合进行整数转换。

function parse2Int(num) {
    var regex=/^\d+/;
    num=regex.exec(num)[0];//第一项是捕获到的大正则内容
    return parseInt(num);
}

15.计时器

要求:实现一个打点计时器,要求:

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

1)setInterval()
思路:setInterval() 方法会按照指定周期不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。注意第一个数需要立即输出即可。

function count(start, end) {
  //立即输出第一个值
  console.log(start++);
     var timer = setInterval(function(){
         if(start <= end){
             console.log(start++);
         }else{
             clearInterval(timer);
         }
     },100);
    //返回一个对象
     return {
         cancel : function(){
             clearInterval(timer);
         }
     };
 }

2)setTimeout()

function count(start, end) {
    if(start <= end){
        console.log(start);
        start++;
        st = setTimeout(function(){count(start, end)}, 100);
    }
    return {
        cancel: function(){clearTimeout(st);}
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值