zoukankan      html  css  js  c++  java
  • 近期的笔试面经

    汇总一个笔试面经吧

    有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处,等号赋值是从右往左赋值

    然后如图:

  • 相关阅读:
    阿里云云效技术专家分享:云原生开发、调测及可靠发布解决方案
    对话李飞飞,揭秘国际体育赛事风“云”背后的黑科技
    时序数据库永远的难关 — 时间线膨胀(高基数 Cardinality)问题的解决方案
    当Java遇上机密计算,又一段奇幻之旅开始了!
    内核热补丁,真的安全么?
    在 Dubbo3.0 上服务治理的实践
    CCF-201509-3-生成模板系统
    WPF CommandParameter的使用
    UWP App Data存储和获取
    在WPF中的ItemsControl中使用事件和命令(Using events and Commands within ItemsControl in WPF)
  • 原文地址:https://www.cnblogs.com/yuan233/p/10574920.html
Copyright © 2011-2022 走看看