zoukankan      html  css  js  c++  java
  • JS经典面试题

    自己总结了一些JS面试题

    希望能够帮助正在找工作的程序猿(●´∀`●)

    1.js 实现一个函数对javascript中json 对象进行克隆
       var oldObject ="sdf";
       var newObject = JSON.parse(JSON.stringify(oldObject));
       console.log(newObject);
    或者
        var a = 'dddd';
        function cp(a){return JSON.parse(JSON.stringify(a))}
        console.log(cp(a));
    2.js 实现 ajax 请求或者submit请求时 锁屏功能以及开锁功能(请求时界面Loading以及元素不能点击,请求完成即消除Loading)
    function(url, fn) {
         var obj = new XMLHttpRequest(); // XMLHttpRequest对象用于在后台与服务器交换数据
         obj.open('GET', url, true);
         obj.onreadystatechange = function() {
                if(obj.readyState == 4 && obj.status == 200||obj.status == 304) {
    
                       loading.style.display = "none"
    
                    } else {
    
                       alert("不能点击,哈哈哈!");
    
                    }
    
           };
    obj.send(null);
    }
    3.js 实现一个函数 获得url参数的值
    function getQueryString(name) { 
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 
    var r = window.location.search.substr(1).match(reg); 
    if (r != null) return unescape(r[2]); return null; 
    } 
    4.请用js计算1-10000中出现的0 的次数
    new Array(10000).fill('').map((_, index) => index + 1).filter(item => /0/.test(item)).reduce((count, item) => { return count + (String(item).match(/0/g) || []).length}, 0)
    5.取得函数最多传递的参数 直接调用arguments.length
           var fun1 = function (p1, p2, p3) {
                alert('接收的参数长度为:' + arguments.length);
                //遍历传入的参数
                for (var i in arguments) {
                    //使用索引的方式获取参数值
                    console.log(arguments[i]); 
                }
            }
            alert('fun1的参数长度为:'+fun1.length);
            fun1('a', 2, 'c');
    6.实现 repeatStr
    function strrepeat(str,num){
         
        return  new Array(num + 1).join(str);
    
    }
    
    strrepeat("hello",3)

    7.写一个function,清除字符串前后的空格。(兼容所有浏览器)

    function trim(str) {
        if (str & typeof str === "string") {
            return str.replace(/(^s*)|(s*)$/g,""); //去除前后空白符
        }
    }

    8.降维数组

    var arr=[[1,2],[3,4]];
    function Jw(obj){
         return Array.prototype.concat.apply([],obj);
    }
    Jw(arr);

    9.对象变成数组

    var data={a:1,b:2,c:3};
    function toArr(obj){
               var arr1=[];
               for(var i in obj){
                   arr1.push(obj[i]);
               }
               return arr1;
               // arr1.fitter(function(x){console.log(arr1(x))});
    }
    console.log(toArr(data));

    10.将url的查询参数解析成字典对象

    function getQueryObject(url) {
        url = url == null ? window.location.href : url;
        var search = url.substring(url.lastIndexOf("?") + 1);
        var obj = {};
        var reg = /([^?&=]+)=([^?&=]*)/g;
        search.replace(reg, function (rs, $1, $2) {
            var name = decodeURIComponent($1);
            var val = decodeURIComponent($2);                
            val = String(val);
            obj[name] = val;
            return rs;
        });
        return obj;
    }
     
  • 相关阅读:
    tomcat 7服务器跨域问题解决
    logstash 改变行分割符
    logstash 编码转换默认UTF8
    GIT常用命令
    GIT常用命令
    GIT常用命令
    介绍开发流程以及相关技术
    介绍开发流程以及相关技术
    介绍开发流程以及相关技术
    介绍开发流程以及相关技术
  • 原文地址:https://www.cnblogs.com/weven/p/7236111.html
Copyright © 2011-2022 走看看