• 近期的笔试面经


    汇总一个笔试面经吧

    有A、B、C三个任务,要求:A和B,C异步执行,A,B二者都完成后执行C

    function promise1(){
    setTimeout(
        ()=>{console.log(1)}),0
    }
    function promise2(){
    setTimeout(
        ()=>{console.log(2)}),0
    }
    function promise3(){
    setTimeout(
        ()=>{console.log(3)}),50
    }
    Promise.all([promise1(), promise2()]).then(promise3());
    

     给一个字符串找出其中的字母并将首字母大写后返回

     var str='123abcd234dae';
     function filters(str){
         var newStr=str.replace(/[0-9]/g,'');
         return newStr.charAt(0).toUpperCase()+newStr.substring(1);
     }
     console.log(filters(str));
     

     实现一个用hash实现一个路由跳转:

     <div id="index-page" class="content">
            <ul>
                <li><a href="#/1">1</a></li>
                <li><a href="#/2">2</a></li>
                <li><a href="#/3">3</a></li>
                <li><a href="#/4">4</a></li>
                <li><a href="#/5">5</a></li>
            </ul>
        </div>
        <div id="text-page" class="content">
            <h1>this is text page</h1>
            <a href="#/1">back</a>
        </div>
       <div id="news-page" class="content">
           <h1>this is new page</h1>
           <a href="#/1">back</a>
        </div>
        <div id="about-page" class="content">
            <h1>this is about page</h1>
           <a href="#/1">back</a> 
        </div>
    
       <script>
        function Router(){
            this.routes={};
            this.currentURL="";
        }
        Router.prototype.route=function(path,callback){
            this.routes[path]=callback||function(){};
        }
        Router.prototype.refresh=function(){
            this.currentURL=location.hash.slice(1)||'/1';
            try{
                this.routes[this.currentURL]();
            }
            catch(err){
                alert("请输入合法路由");
            }}
            //路由初始化,添加监听事件
            Router.prototype.init=function(){
                var that=this;
                if(window.addEventListener){
                  window.addEventListener("load",function(){
                      that.refresh();
                  },false);
            if("onhashchange" in window.document.body){
                window.addEventListener("hashchange",function(){
                    that.refresh();
                },false)
            } 
            else{
                onhashchange_compatibility(that);
            }   }
            else if(window.attachEvent){
                window.attachEvent('onload',function(){that.refresh()},false);
                window.attachEvent("onhashchange",function(){that.refresh();},false)
                onhashchange_compatibility(that);
            }
            }
            function onhashchange_compatibility(that){
                var location=window.location;
                oldURL=location.href;
                oldHash=location.hash;
                setInterval(function(){
                    var newHash=location.hash
                    if(newHash!=oldHash){
                        that.refresh();
                        oldURL=location.href;
                        oldHash=newHash;
                    }
                },100)
            }
    function display_page(id){
        var el=document.getElementsByClassName("content");
        for(var i=0;i<el.length;i++){
            el[i].style.display="none";
        }
        el[id].style.display="block";
    }
    window.Router=new Router();
    Router.route('/1',function(){
        display_page(0);
    })
    Router.route('/2',function(){
        display_page(1);
    })
    Router.route('/3',function(){
        display_page(2);
    })
    Router.route('/4',function(){
        display_page(3);
    })
    window.Router.init();
        </script>

     js实现一个map数据结构:

    function Map(){
    this.container=new Object();
    }
    Map.prototype.set=function(key, value)
    {
    if(key!=null&&key!='')
    {
    this.container[key]=value;
    }
    } Map.prototype.
    get=function(key){ return this.container[key] } Map.prototype.has=function(key){ for(var i in this.container){ if(i===key) return true; } } Map.prototype.delete=function(key){ delete this.container this.container=new Object(); } Map.prototype.size=function(){ var count; for(var i in container) count++ return count; }

     一道笔试题的知识点,题目如下:

    var a={n:1}
    var b=a
    a.x=a={n:2} 
    console.log(a.n,b.n)//2 1
    console.log(a.x,b.x)//undefined Object

     首先分析3处,等号赋值是从右往左赋值

    然后如图:

  • 相关阅读:
    数据结构实用C语言基础
    第二个星期的C语言
    hello world!
    代码规范
    调用有道词典翻译api
    PO,POJO,BO,DTO,VO的区别
    切换Eclipse语言包
    URI和URL区别
    get和post
    Eclipse快捷键
  • 原文地址:https://www.cnblogs.com/yuan233/p/10574920.html
Copyright © 2020-2023  润新知