每日一点前端面试题

2017-06-30  本文已影响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);
上一篇下一篇

猜你喜欢

热点阅读