美文网首页
进阶11作业

进阶11作业

作者: 饥人谷_醉眼天涯 | 来源:发表于2017-09-28 15:53 被阅读0次
题目1: 下面的代码输出多少?修改代码让 fnArri 输出 i。使用 两种以上的方法
    var fnArr = [];
    for (var i = 0; i < 10; i ++) {
        fnArr[i] =  function(){
            return i;
        };
    }
    console.log( fnArr[3]() );  //

输出结果为10

    // 方法一
    var fnArr = [];
    for(var i = 0; i < 10; i++) {
      (function(num) {
         fnArr[num] = function() {
            return num;
        }
      })(i)
    }
    console.log(fnArr[3]()) // 
    // 方法二
     var fnArr = [];
    for(var i = 0; i < 10; i++) { 
        var t = function(num) {
          return function() {
            return num;
          }
        }
         fnArr[i] = t(i)
        }
    console.log(fnArr[3]()) // 
题目2: 封装一个汽车对象,可以通过如下方式获取汽车状态
var Car = (function() {
   var speed = 0;
   function setSpeed(s){
       speed = s
   }

   function getSpeed() {
    console.log(speed);
   }

   function accelerate() {
      speed += 10;
   }
   function decelerate() {
      speed -= 10;
   }
   function getStatus() {
      if(speed > 0) {
        console.log('running');
      } else {
        console.log('stop');
      }
   }
   return {
      setSpeed: setSpeed,
      getSpeed: getSpeed,
      accelerate: accelerate,
      decelerate: decelerate,
      getStatus: getStatus,
   }
})()

Car.setSpeed(30);
Car.getSpeed(); //30
Car.accelerate();
Car.getSpeed(); //40;
Car.decelerate();
Car.decelerate();
Car.getSpeed(); //20
Car.getStatus(); // 'running';
Car.decelerate();
Car.decelerate();
Car.getStatus(); //'stop';
//Car.speed; //error

题目3:下面这段代码输出结果是? 为什么?
var a = 1;
setTimeout(function(){
    a = 2;
    console.log(a);
}, 0);
var a;
console.log(a); // C
a = 3;
console.log(a); // D

输出结果为 1 3 2
理由 C 和 D代码先执行,虽然设置的是0秒之后执行,但是实际上比0秒多的时间之后执行。

题目4:下面这段代码输出结果是? 为什么?
var flag = true;
setTimeout(function(){
    flag = false;
},0)
 while(flag){}
console.log(flag);

什么都不会输出,因为while(flag){} flag为true的时候,是一个死循环。会一直执行{}这个里面的语句。

题目5: 下面这段代码输出?如何输出delayer: 0, delayer:1...(使用闭包来实现)
 for(var i=0;i<5;i++){
    setTimeout(function(){
    console.log('delayer:' + i );
  }, 0);
    console.log(i);
 }

输出的结果为 0 1 2 3 4
delayer: 5
delayer: 5
delayer: 5
delayer: 5
delayer: 5

for(var i = 0; i < 5; i++) {
  (function(i) {
    return setTimeout(function() {
        console.log('delayer:' + i);
    }, 0);
  })(i)
console.log(i);
}
题目6: 如何获取元素的真实宽高
<body>
  <div id="long">
    hihihihih
  </div>
  <script>
    var width = document.getElementById('long');
    console.log(width.scrollWidth);
  </script>
</body>
题目7: URL 如何编码解码?为什么要编码?

编码encodeURIComponent('你好'); // "%E4%BD%A0%E5%A5%BD"

解码decodeuRIComponent('%E4%BD%A0%E5%A5%BD') // "你好"

应为浏览器地址不允许存在中文。

题目8: 补全如下函数,判断用户的浏览器类型
function isAndroid(){
}
function isIphone(){
}
function isIpad(){
}
function isIOS(){
}
var browser = {
  versions: function() {
    var u = navigator.userAgent;
    function isAndroid() {
      console.log( u.indexOf('Android') > -1);
    }

    function isIphone() {
      console.log(u.indexOf('iphone') > -1);
    }

    function isIpad() {
      console.log(u.indexOf('iPad') > -1);
    }

    function isIOS() {
      console.log(!!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) > -1); 
    }
    return {
      isAndroid: isAndroid,
      isIphone: isIphone,
      isIpad: isIpad,
      isIOS: isIOS,
    }
  }()
}
browser.versions.isIphone();

相关文章

  • 10.17

    作业1 作业2 作业3 作业4 作业5 作业6 作业7 作业8 作业9 作业10 作业11 思考题一 进阶题一

  • 11.17

    作业1 作业2 作业3 作业4 作业5 作业6 作业7 作业8 作业9 作业10 作业11 思考题一 进阶题一

  • 进阶11作业

    题目1: 下面的代码输出多少?修改代码让 fnArri 输出 i。使用 两种以上的方法 输出结果为10 题目2: ...

  • 2020-05-11 塔勒布信息分析报告(第一版)

    Ch2 进阶作业二进阶作业为必做题。本章进阶作业共 2 个,请你至少完成 1 个。 任选一位你感兴趣的学者,参考以...

  • SQL语句21天打卡,第15天0411

    2020年04月11日软件测试圈「每日进阶」 第15天作业 , 1)删除 istester表,id大于12的数据 ...

  • SQL语句21天打卡,第11天0407

    2020年04月07日软件测试圈「每日进阶」 第11天作业 , -- 1)查找istester表,按id降序 se...

  • webpack进阶【12】: webpack-dev-serv

    webpack: webpack-dev-server 页面自动刷新 注意:本进阶在webpack进阶 【11...

  • 21天 Jenkins打卡,第11天0503

    2020年05月03日软件测试圈「每日进阶」 第11天作业 1)保留最近3天的构建; 2)保留最多5个构建历史记录...

  • 爬小说谁的青春不迷茫

    @DC学院《Python爬虫:入门+进阶》 今年11月7号,报名了DC学院python爬虫(入门进阶)课程,在此课...

  • 进阶11

    题目1: 下面的代码输出多少?修改代码让 fnArri 输出 i。使用 两种以上的方法 题目2: 封装一个汽车对象...

网友评论

      本文标题:进阶11作业

      本文链接:https://www.haomeiwen.com/subject/ctfvextx.html