zoukankan      html  css  js  c++  java
  • 破解前端面试(80% 应聘者不及格系列):从闭包说起

    (function(){
    /*for(var i = 0; i < 5; i++){
        setTimeout(function(){
            console.log(new Date(), i)
        },1000)
    }
    
    console.log(new Date(), i);
    //55555
    
    for(var i = 0; i < 5; i++){
        setTimeout(function(){
            console.log(i + '=>')
        },1000)
    }
    
    console.log(i + ' ->');*/
    //5->5=>5=>5=>5=>5=>
    
    })();
    //输出5,0,1,2,3,4
    (function(){
        /*for(var i = 0; i < 5; i++){
            (function(i){
                setTimeout(function(){
                    console.log(',' + i);
                }, 1000);
            })(i);
        }
        console.log(i);*/
        
        /*var name = 'aaa';
        for(var i = 0; i < 5; i++){
            setTimeout(function(i,name){
                console.log(i + name);
            },1000,i,name);
        }
        console.log(i);*/
        
        /*var output = function(i){
            setTimeout(function(){
                console.log(i);
            }, 1000);
        }
        for(var i = 0; i < 5; i++){
            output(i);
        }
        console.log(i);*/
        /*for(let i = 0; i < 5; i++){
            setTimeout(function(){
                console.log(i);
            }, 1000);
        }
        console.log(i);    //报错了*/
        /*let name = 'aadfdfa';
        function alertName(){
            alert(name);
        }
        alertName();*/
        /*for(var i = 0; i < 5; i++){
            
        }
        var i = 0;
        var inter = setInterval(function(){
            if(i <= 5){
                console.log(i)
                i++
            }else{
                clearInterval(inter);
            }
        },1000);
        */
        /*for(var i = 0; i < 5; i++){
            (function(j){
                setTimeout(function(){
                    console.log(j);
                }, 1000*j);
            })(i);
        }
        setTimeout(function(){
            console.log(i);
        }, 1000*i)*/
        //promise版本
        /*const tasks = [];
        for(var i = 0; i < 5; i++){
            ((j)=>{
                function resolve(){
                    console.log('aaaaaaaaa');
                }
                tasks.push(new Promise((resolve)=>{
                    setTimeout(()=>{
                        console.log(j);
                        resolve();
                    },1000*j);
                }));
            })(i);
        }
        Promise.all(tasks).then(()=>{
            setTimeout(function(){console.log(i);}, 1000)
        });*/
        //promise简洁版
        /*const tasks = [];
        const output = (i)=> new Promise((resolve)=>{
                setTimeout(()=>{
                    console.log(i);
                    resolve();
                }, 1000*i);
            });
        
        for(var i = 0; i < 5; i++){
            tasks.push(output(i));
        }
        
        Promise.all(tasks).then(()=>{
            setTimeout(()=>{
                console.log(i);
            }, 1000)
        })*/
        const sleep = (timeStamp) => new Promise((resolve)=>{
            setTimeout(resolve, timeStamp);
        })
        (async ()=>{    //报错了,可能是我的babel还不支持,谢谢
            for(var i = 0; i < 5; i++){
                if(i > 0){
                    await sleep(1000);
                }
                console.log(i);
            }
            
            await sleep(1000);
            console.log(i);
        })()
    })();
  • 相关阅读:
    编程原理
    VMware
    window的composer安装
    微信小程序支付的坑
    php 生成二维码
    接口文档在线编辑
    mysql函数的使用
    linux的反斜扛的问题
    require_once中使用./和../时遇到的坑
    微信测试账号申请后,登陆空白的现象
  • 原文地址:https://www.cnblogs.com/xudy/p/6719791.html
Copyright © 2011-2022 走看看