1. px和em的区别?
px和em都是长度单位;
区别是:
px的值是固定的,指定是多少就是多少,
计算比较容易。
em得值不是固定的,而且em会继承父级元素的字体大小。
浏览器的默认字体高都是16px;
因此未经调整的浏览器都符合: 1em=16px;
那么12px=0.75em, 10px=0.625em
2. CSS 去掉inline-block元素间隙的几种方法?
间隙是怎么来的:
间隙是由换行或者回车致使的;
只要把标签写成一行或者
标签直接没有空格,就不会出现间隙;
怎么去除?
方法1:
元素间的间隙出现的缘由
是元素标签之间的空格,
把空格去掉间隙天然就会消失。
<div class="itlike"> <span>撩课itlike</span>
<span>撩课itlike</span>
</div>
方法2: 利用HTML注释标签
<div class="demo"> <span>撩课itlike</span><!-- -->
<span>撩课itlike</span></div>
方法3: 取消标签闭合
<div class="demo"> <span>撩课itlike
<span>撩课itlike
<span>撩课itlike
<span>撩课itlike
</div>
方法4: 在父容器上使用font-size:0;能够消除间隙
<div class="demo"> <span>撩课itlike</span> <span>撩课itlike</span> <span>撩课itlike</span> <span>撩课itlike</span>
</div>
.demo {font-size: 0;}
3. 在Javascript中什么是伪数组?如何将伪数组转化为标准数组?
伪数组(类数组):
没法直接调用数组方法,
length属性有什么特殊的行为, 但仍能够对真正数组遍历方法来遍历它们。 典型的是函数的argument参数,
还有像调getElementsByTagName,
document.childNodes之类的, 它们都返回NodeList对象,
这些都属于伪数组。 能够使用
Array.prototype.slice.call(fArray)
将数组转化为真正的Array对象。
4. 数组快速排序?
思路:
a) 在数据集之中,选择一个元素做为"基准"(pivot)。 b) 全部小于"基准"的元素,都移到"基准"的左边; 全部大于"基准"的元素,都移到"基准"的右边。 c) 对"基准"左边和右边的两个子集, 不断重复第一步和第二步, 直到全部子集只剩下一个元素为止。
var quickSort = function(arr) { if (arr.length <= 1) { return arr; } var pivotIndex = Math.floor(arr.length / 2); var pivot = arr.splice(pivotIndex, 1)[0]; var left = []; var right = []; for (var i = 0; i < arr.length; i++){ if (arr[i] < pivot) { left.push(arr[i]); } else { right.push(arr[i]); } } return quickSort(left).concat([pivot],
quickSort(right)); };
5. 开发中有哪些常见的Web攻击技术?
a) XSS(Cross-Site Scripting,跨站脚本攻击):
指经过存在安全漏洞的Web网站注册用户的浏览器
内运行非法的HTML标签或者JavaScript进行的一种攻击。
b)SQL注入
c) CSRF(Cross-Site Request Forgeries,跨站点请求伪造):
指攻击者经过设置好的陷阱,强制对已完成的认证用户进行
非预期的我的信息或设定信息等某些状态更新。