每日一点前端面试题
2017-06-30 本文已影响0人
俊_杰
周四、北京、晴
Ajax请求的时候GET和POST的区别?
- GET大小限制,安全低,POST则相反;
- GET请求需考虑缓存问题,POST无需关心;
- POST请求必须设置Content-Type值为application/x-form-www-urlencoded
- 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种
- Trident(IE内核)
- Gecko(Firefox内核)
- 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来规范浏览器的行为即可。
请至少用两种方法实现两个变量对调,不借用第三个变量的情况
- // 首先想到的是利用ES6的解构赋值
var a = 'Aaa';
var b = 'Bbb';
[a, b] = [b, a];
console.log(a);
console.log(b);
- // 下面这种方法适用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);
- // 把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);
- // 此方法神妙,不知道哪位大神想的,随意感受下
var a = 'Aaa';
var b = 'Bbb';
a = [b, b = a][0];// b = a先执行
console.log(a);