美文网首页大前端
JavaSctipt面试题解析

JavaSctipt面试题解析

作者: 丽__ | 来源:发表于2021-05-11 17:46 被阅读0次

    -xlx

    1、判断一个字符串中出现次数最多的字符,并统计次数

    /**
     * 最终返回一个对象
     * {
     *  a:3,个数
     *  b:1
     * }
     */
    
    var str = 'fdsfdfsdfwersdwwwwwxfsdfffff'
    
    function fUnique(str){
        // 创建一个对象
        var obj = {};
    
        for(var i=0;i<str.length;i++){
            // 如果没有,添加一个并且赋值为1
            var key = str[i]
            if(!obj[key]){
                obj[key]=1;
            }else{
                obj[key]+=1
            }
        }
    
        return obj;
    }
    
    const result = fUnique(str);
    console.log(result);
    

    结果:


    image.png

    2、请编写一个javasctipt函数,解析地址参数

    const url =
      "https://www.baidu.com/s?wd=%E7%BD%91%E6%98%93%E4%BA%91%E8%AF%BE%E5%A0%82&rsv_spt=1&rsv_iqid=0xa72c667700064b52&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=tb&rsv_sug3=28&rsv_sug1=24&rsv_sug7=101&rsv_sug2=0&rsv_btype=i&inputT=10095&rsv_sug4=13293";
    
    function fParseQueryString(url) {
      const result = {};
    
      var urls = url.split("?");
      const arr = urls[1].split("&");
      for (let i = 0; i < arr.length; i++) {
        let brr = arr[i].split("=");
        result[brr[0]] = brr[1];
      }
      return result;
    }
    
    console.log(fParseQueryString(url));
    
    

    结果;


    image.png

    3、new具体做了什么事

    // new到底做了什么
    /**
     * 1、创建一个对象  new Object()
     * 2、原型赋值[指向共同一个圆形对象]
     *         对象.__proto__ = Fun.prototype
     * 3、改变this指向
     *      fun.call(obj)
     */
    
    function Fun (){
        // this.name = "张三"
    }
    Fun.prototype = {
        name:'李四',
        run:function(){
    
        }
    }
    const obj = new Fun();
    console.log(obj.name);
    

    4、分别打印什么

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <script>
            function Foo() {
                getName = function () {
                    console.log(1);
                };
                return this;
            }
    
            Foo.getName = function () {
                console.log(2);
            };
            Foo.prototype.getName = function () {
                console.log(3);
            };
            var getName = function () {
                console.log(4);
            };
            function getName() {
                console.log(5);
            }
    
            Foo.getName(); //2
            getName(); //4
            Foo().getName(); //1
            getName(); //1
            new Foo().getName(); //3
        </script>
    </body>
    
    </html>
    

    相关文章

      网友评论

        本文标题:JavaSctipt面试题解析

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