zoukankan      html  css  js  c++  java
  • 前端笔试题解析

    1.
    var a = [1,2,3];
    a.splice(1,1,2,3,4);
    console.log(a);
    结果是什么?


    答案:
    [ 1, 2, 3, 4 ,3]


    splice(index,delLength,addElements);
    删除1处的1个元素,在1处插入2,3,4


    2.
    关于XSS,下列说法正确的是:
    A:XSS的全称是Cross Site Scripting。
    B:CSRF是XSS的一种
    C:从Cookie中获取用户名并输出到页面的过程不会导致XSS。
    D:XSS都是因为后端未对数据做安全检查造成的。


    答案:A


    A:XSS:跨站脚本攻击
    B:CSRF(Cross-site request forgery)跨站请求伪造,已经授权的用户在未知的情况下进行表单提交。
    C:会,DOM型XSS
    D:XSS有三种,反射型、持久型、Dom型,其中前2者是前后端未对数据进行检查,而Dom型只有前端。


    3.以下两种方式调用函数时,alert的结果?
    var foo = 1;
    function main(){
    alert(foo);
    var foo = 2;
    alert(this.foo);
    this.foo = 3;
    }
    main();
    new main();


    答案:
    undefined
    undefined
    undefined
    undefined


    当执行到main中的alert(foo)时,因为检测到foo在之后定义了,所以知道foo指的是main中的foo,所以显示undefined。
    this.foo也是同理,undefined。this.foo在对象中,而foo是定义在main函数中,所以2者不同。
    main()的运行和new main()的运行完全一样,只是返回的内容不同,前者返回return 内容,后者返回对象。


    4.
    关于跨域问题下面哪些说法是正确的
    A:通过jsonp方式可以发出POST请求其它域名下的接口
    B:通过iframe设置document.domain可以实现跨域
    C:可以利用flash的http请求,来处理跨域问题
    D:i.aliyun.com中可以ajax请求www.aliyun.com/info.json


    答案ABC


    D里面子域不同也不允许跨域


    5.
    关于CSS中的单位一下哪个说法是正确的:
    A:px是相对于显示器屏幕分辨率的相对长度单位
    B:em是相对于body标签font-size的单位
    C:rem是相对于其父元素来设置字体大小的
    D:pt(point)是印刷常用单位“磅”,大小为1/72英寸。


    答案:
    AD


    px是相对单位,也有一种说法是像素单位。
    em是相对于当前对象的font-size的单位,而不是body
    rem是相对于根元素来调整大小的


    6.
    function A(params){
        params = params || {};
        for (var key in params){
            Object.defineProperty(this,key,{
                get:function () {
                    return params[key];
                },
                enumerable:false
            });
        }
        //key = 3;
    }


    var a = new A({
        'x':'X',
        'y':'Y',
        'z':'Z'
    });


    有上述程序,下列说法不正确的是:
    A:运行console.log(a.x);的结果是x
    B:a.y()运行结果是TypeError:String is not a function的错误


    答案:A
    Object.defineProperty可以设置属性的一些属性,比如:
        configurable: false, //是否可以删除属性,是否可以修改属性的 writable 、 enumerable 、 configurable 属性。
        enumerable: false,   //是否可以枚举,是否可以通过for...in 遍历到,是否可以通过 Object.keys() 方法获取属性名称
        writable: false,     //是否可以对属性进行重新赋值
        value: null,     //属性的默认值
        set: undefined,     //属性被赋值时,此方法被自动调用
        get: undefined      //属性被读取时,此方法被自动调用
    A:console.log(a.x)的结果是Z,因为key值最后被赋值为'z',所以任何属性的get方法都会返回params['z']
    B:报的错误是y not a function


    7.没有


    8.
    编写一个Java Script函数,传入仅包含数组多维数组,返回拍平后结果。
    比如:传入[1,[2,3]],返回[1,2,3]
    function flatten(arr){
    //return flattened_arr
    }


    答案1:
    function flatten(arr) {
        var result = (arr + "").split(',');
        return result;
    }


    console.log(flatten([1,[2,3]]));


    答案2:
    function flatten(arr) {
        var result = [];
        function insert(subarr) {
            for (var i = 0,ii = subarr.length;i < ii;i ++){
                if (subarr[i] instanceof Array){
                    insert(subarr[i]);
                }else{
                    result.push(subarr[i]);
                }
            }
        }
        insert(arr);
        return result;
    }


    console.log(flatten([1,[2,3]]));


    9.页面A的域名是:www.taobao.com。页面B的域名是:www.tmall.com,如果A使用iframe引用B,如何做到iframe的高度自适应(即B内容有多高,iframe就有多高)
    <iframe src="http://www.tmall.com" id="myiframe" scrolling="no" onload="changeFrameHeight()" frameborder="0"></iframe>


    function changeFrameHeight(){
        var ifm= document.getElementById("iframepage"); 
        ifm.height=document.documentElement.clientHeight;
    }
    window.onresize=function(){  
         changeFrameHeight();  
    }




    10.
    JavaScript实现格式化输出,比如输入999999999,输出为999,999,999
    function strFormat(num,sp,len){
        var resultStr = "";
        var numStr = num + "";
        var i = numStr.length - 3;
        while (i >= 0){
            resultStr = "," + numStr.substr(i,len) + resultStr;
            // console.log(resultStr);
            i -= len;
        }
        // console.log(i);
        if (i > -len){
            resultStr = numStr.substr(0,i + len) + resultStr;
        }else{
            resultStr = resultStr.substr(1,resultStr.length - 1);
        }
        return resultStr;
    }


    console.log(strFormat("0123456789",",",3));


    11.
    运用JS设置cookie、读取cookie、删除cookie
    //写cookies 


    function setCookie(name,value) 

        var Days = 30; 
        var exp = new Date(); 
        exp.setTime(exp.getTime() + Days*24*60*60*1000); 
        document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 



    //读取cookies 
    function getCookie(name) 

        var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
     
        if(arr=document.cookie.match(reg))
     
            return unescape(arr[2]); 
        else 
            return null; 



    //删除cookies 
    function delCookie(name) 

        var exp = new Date(); 
        exp.setTime(exp.getTime() - 1); 
        var cval=getCookie(name); 
        if(cval!=null) 
            document.cookie= name + "="+cval+";expires="+exp.toGMTString(); 
    }


    12.
    CSS样式设置,略


    13.
    请编写一个JS函数parseQueryString,它的用途是把URL参数解析为一个对象
    如:var url = "http://witmax.cn/index.php?key0=0&key1=1&key2=2"


    function getObjFromUrl(url){
        var strArr = url.split("?");
        var hostStr = strArr[0];
        var paramsArr = strArr[1].split("&");
        var resultObj = {};
        resultObj["host"] = hostStr;
        resultObj["params"] = [];
        for (var i = 0,ii = paramsArr.length;i < ii;i ++){
            var keyAndValue = paramsArr[i].split("=");
            resultObj["params"].push({
                key:keyAndValue[0],
                value:keyAndValue[1]
            });
        }
        return resultObj;
    }


    var url = "http://witmax.cn/index.php?key0=0&key1=1&key2=2";
    console.log(getObjFromUrl(url));

  • 相关阅读:
    洛谷P2602 [ZJOI2010]数字计数 题解
    数位DP模板
    The Meaningless Game 思维题
    CF55D Beautiful numbers 数位DP
    NOIP 2016 洛谷 P2827 蚯蚓 题解
    弹性碰撞问题:Ants+Linear world
    BZOJ1294 洛谷P2566 状态压缩DP 围豆豆
    朋友HDU
    树的深度———树形DP
    CF1292C Xenon's Attack on the Gangs 题解
  • 原文地址:https://www.cnblogs.com/ZDPPU/p/7382289.html
Copyright © 2011-2022 走看看