美文网首页
进阶任务11

进阶任务11

作者: 机智的大口袋 | 来源:发表于2018-01-07 14:19 被阅读0次
  • 输出为10
var fnArr = [];
for (var i = 0; i < 10; i ++) {
    !function (j) {
        fnArr[j] =  function(){
            return j;
    }
    }(i)
}
console.log( fnArr[3]() );

或者

var fnArr = [];
for (var i = 0; i < 10; i ++) {
    fnArr[i]=function (i) {
        return function () {
            console.log(i)
        }
    }(i)
}
console.log( fnArr[3]() );
  var Car = (function () {
        var speed = 0;

        function setSpeed(s) {
             return speed = s
        }
        function getSpeed(){
            console.log(speed)
        }
        function accelerate(){
            return speed += 10
        }
        function decelerate() {
            return speed -= 10
        }
        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';
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在当前代码队列执行结束后再执行,异步执行。
var flag = true;
setTimeout(function(){
    flag = false;
},0)
while(flag){}
console.log(flag);
//不输出,因为while(flag)一直为true,所以一直循环,setTimeout无法被执行。
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.如何获取元素的真实宽高

let style= window.getComputedStyle(element);
console.log(style.height, style.width);

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

编码的方式有两种,第一种是使用encodeURI();参数为一个url字符串或字符串对象,通过这种方式编码的url相比encodeURIComponent()编码的将会把元字符和语义字符之外的字符,都进行转义,而后者除了语义字符之外的字符,元字符也会被转义。因此,它的参数通常是URL的路径或参数值,而不是整个URL。答:编码的作用无非就是为了使用起来更加方便轻巧且易于区分,避免造成误会比如当我门要返回一个网址的时候,?back=xxx&value = return.这样便不会把后面的value也当成了前一个网页的参数值.

function isAndroid(){
    return /Android/.test(navigator.userAgent);
}
funcnction isIphone(){
    return /iPhone/.test(navigator.userAgent);
}
function isIpad(){
    return /iPad/.test(navigator.userAgent);
}
function isIOS(){
    return /(iPad)|(iPhone)/i.test(navigator.userAgent);
}

相关文章

  • 进阶任务11

    输出为10 6.如何获取元素的真实宽高 7.URL 如何编码解码?为什么要编码? 编码的方式有两种,第一种是使用e...

  • 进阶任务-11

    下面的代码输出多少?修改代码让 fnArr[i]() 输出 i. 两种以上的方法 注:es6中的let是非常方便的...

  • 进阶 任务 11

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

  • 进阶任务11

    题目1: 下面的代码输出多少?修改代码让 fnArr[i]() 输出 i。使用 两种以上的方法 使用新的函数,创建...

  • 进阶任务11

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

  • 进阶-任务11

    题目1: 输出10 题目2 题目3 输出1,3,2定时器中的函数会被自动放到队尾执行,所以会先依顺序输出1和3,再...

  • Swift多线程:GCD进阶,单例、信号量、任务组

    Swift多线程:GCD进阶,单例、信号量、任务组 Swift多线程:GCD进阶,单例、信号量、任务组

  • 小龙家KK语音虐虐L1学习复盘

    嘻嘻,今天是2018年11月11日,对我来说,特别的是参加的KK语音虐虐L1学习任务通过,然后准备进阶L2的学习,...

  • 进阶-任务2

    1、JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么? ...

  • 进阶-任务2

    1、JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么? ...

网友评论

      本文标题:进阶任务11

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