美文网首页
每日一点前端面试题

每日一点前端面试题

作者: 俊_杰 | 来源:发表于2017-06-30 18:54 被阅读0次
    周四、北京、晴

    Ajax请求的时候GET和POST的区别?

    1. GET大小限制,安全低,POST则相反;
    2. GET请求需考虑缓存问题,POST无需关心;
    3. POST请求必须设置Content-Type值为application/x-form-www-urlencoded
    4. GET请求的参数写在url里,所以send函数发送的参数为null,而POST请求的数据需要写在send中

    JS中函数split()和join()的区别?

    // 根据传入参数的不同,字符串拆分成数组和数组拆分成字符串

    var str = 'my name is moka.';
    var arr = str.split(" ");
    console.log(arr);// ["my", "name", "is",       "moka."]
    str = arr.join(" ");
     console.log(str);// my name is moka.
    

    下面的语句的返回值是什么

    var a = 6;
    setTimeout(function(){
        alert(a);
        a = 666;
    }, 1000);
    a = 66;
    

    解:是66,setTimeout是异步的


    你做的页面在哪些内核浏览器测试过,说出3种

    1. Trident(IE内核)
    2. Gecko(Firefox内核)
    3. Webkit(Safari内核)

    假设发现有一篇文章,var content = "大量文字...",过滤其中的敏感词汇,如何发现敏感词汇并将其背景标记为红色

    <!doctype html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>敏感词高亮</title>
        <style>
        #div1 {
        width: 330px;
        height: 200px;
        border: 10px solid #063;
        font-size: 14px;
        font-family: "微软雅黑";
        padding: 10px;
    }
    span {
        background: #F0F;
    }
    </style>
    <script>
    window.onload = function() {
        // 敏感词
        var arr = ['君子', '也'];
    
        var oDiv = document.getElementById('div1');
        var oTxt = oDiv.innerHTML;
    
        for (var i = 0; i < arr.length; i++) {
            oDiv.innerHTML = oTxt.split(arr[i]).join("<span>" + arr[i] + "</span>");
            // 注意更新
            oTxt = oDiv.innerHTML;
        }
    };
    // ps:用正则应该是更好的办法,有时间再改吧
    </script>
    </head>
    <body>
    <div id="div1">
        君子曰:学不可以已。   青,取之于蓝,而青于蓝;冰,水为之,而寒于水。木直中绳,輮以为轮,其曲中规,虽有槁暴,不复挺者,輮使之然也。故木受绳则直,金就砺则利,君子博学而日参省乎己,则知明而行无过矣。故不登高山,不知天之高也;不临深溪,不知地之厚也;不闻先王之遗言,不知学问之大也。干、越、夷、貉之子,生而同声,长而异俗,教使之然也。诗曰:「嗟尔君子,无恒安息。靖共尔位,好是正直。神之听之,介尔景福。」神莫大于化道,福莫长于无祸。
    </div>
    </body>
    </html>`
    

    HTML5为什么只需要写<!DOCTYPE html>

      HTML5不基于SGML,因此不需要对DTD进行引用,只需要doctype来规范浏览器的行为即可。
    

    请至少用两种方法实现两个变量对调,不借用第三个变量的情况

    1. // 首先想到的是利用ES6的解构赋值
      var a = 'Aaa';
      var b = 'Bbb';
      [a, b] = [b, a];
      console.log(a);
      console.log(b);

    1. // 下面这种方法适用a和b都是数字的情况,还可以用位运算(^)有兴 趣的研究下
      var a = 666;
      var b = 888;
      a = a + b;// 先变和
      b = a - b;// 和减b自然等于a,然后赋给b
      a = a - b;// 和减b,此时的b已经是调换后的b了
      console.log(a);
      console.log(b);

    1. // 把a变成一个JSON,也可以把a变成一个Array
      var a = 'Aaa';
      var b = 'Bbb';
      a = {
      a: b,
      b: a// 此时的a还是'Aaa'
      };
      b = a.b;
      a = a.a;
      console.log(a);
      console.log(b);

    1. // 此方法神妙,不知道哪位大神想的,随意感受下
      var a = 'Aaa';
      var b = 'Bbb';
      a = [b, b = a][0];// b = a先执行
      console.log(a);

    相关文章

      网友评论

          本文标题:每日一点前端面试题

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