美文网首页
闭包_定时器_BOM

闭包_定时器_BOM

作者: Rising_suns | 来源:发表于2017-04-03 21:08 被阅读0次

1. 下面的代码输出多少?修改代码让 fnArr[i]() 输出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(i){ fnArr[i] = function(){ return i; }; }(i)) } console.log( fnArr[3]() ); //输出3; 修改二: var fnArr = []; for (var i = 0; i < 10; i ++) { fnArr[i] = (function(i){ return function(){ return i; }; }(i)) } console.log( fnArr[3]() ); //输出3;

2.封装一个汽车对象,可以通过如下方式获取汽车状态。

var Car = (function () { var speed = 0; function setSpeed(s) { speed = s } function getSpeed() { return speed; } function accelerate(i = 10) { speed += i; } function decelerate(i = 10) { speed -= i; } function getStatus() { if (speed > 0) { return 'running'; } else { return '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); a = 3; console.log(a); //依次输出1,3,2 因为setTimeout会在当前代码执行队列结束后执行;

4.下面这段代码输出?如何输出delayer: 0, delayer:1...(使用闭包来实现)

`for(var i=0;i<5;i++){
(function(i){
setTimeout(function(){
console.log('delayer:' + i );
}, 0);
})(i);
console.log(i);
} //输出:0,1,2,3,4,delayer:0,delayer:1,delayer:2,delayer:3,delayer:4

5.如何获取元素的真实宽高 ?

function style(element,pseduoElement){ return element.currentStyle ?element.currentStyle : window.getComputedStyle(element,pseduoElement); } var twidth=style(element).width; var theight=style(element).height; var tbackground=style(element).backgroundColor;

6. URL 如何编码解码?为什么要编码?

  • 使用encodeURI()/encodeURIComponent()进行编码;使用decodeURI()/decodeURIComponent()进行解码;
  • 因为需要编码URL中的参数还是URL的时候,不编码就会错误,那么encodeURIComponent是最好方法。如果不对参数的值编码,容易造成歧义。

7. 补全如下函数,判断用户的浏览器类型

function isAndroid(){ return /android/i.test(navigator.userAgent); } funcnction isIphone(){ return /iphone/i.test(navigator.userAgent); } function isIpad(){ return /ipad/i.test(navigator.userAgent); } function isIOS(){ return /iphone|ipad/i.test(navigator.userAgent); }

8.

相关文章

  • 闭包_定时器_BOM

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

  • 闭包_定时器_BOM

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

  • 闭包-定时器-BOM

    1- 算出代码的输出值;修改代码让 fnArri 输出 i 结果:输出 10,因为循环的时候 fnArr[i] =...

  • 闭包_定时器_BOM

    1、下面的代码输出多少?修改代码让 fnArr[i]() 输出 i。使用两种以上的方法。 方法一: 方法二: 方法...

  • 闭包&&定时器&&BOM

    1、下面的代码输出多少?修改代码让 fnArri 输出 i。使用 两种以上的方法 方法一:闭包 方法二:和方法一差...

  • 闭包_定时器_BOM

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

  • 闭包、定时器、BOM

    下面的代码输出多少?修改代码让 fnArr[i]() 输出 i。使用 两种以上的方法 改造如下: 封装一个汽车对象...

  • 闭包_定时器_BOM

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

  • 闭包、定时器、BOM

    1.下面的代码输出多少?修改代码让 fnArri 输出 i。使用 两种以上的方法 方法一 方法二: 方法三: 2....

  • 闭包-定时器-BOM

    1. 下面的代码输出多少?修改代码让fnArr[i]()输出 i。使用两种以上的方法 方法一: 方法二: 2. 封...

网友评论

      本文标题:闭包_定时器_BOM

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