爱分享666

当前位置:首页 >面试题及技巧>web前端面试题

10道JS经典面试题,让你牛起来

时间:2018-09-17 08:28:00 阅读:617
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;
}

上一篇:

spring整合mybatis配置方式 一、二、三 and springMVC

下一篇:

两个List合并去重和排序,对象去重和排序、基础数据类型去重和排序

0 +1
打赏 ×

如果网站能给予您帮助,欢迎给网站捐助,给我打赏个吧!
您的支持是我的动力,让网站能一直陪伴着大家,共同学习进步。
捐助费用将用于网站日常运营(服务器租费、域名租费等)
捐助者请发送邮箱提供姓名至 zhaoqn@163.com 留言以表感谢。

网友评论


  • 验证码:

热门评论

本月热门

推荐资料

精彩评论

回到顶部