0
点赞
收藏
分享

微信扫一扫

郑州网易分公司前端面试题(花钱也买不到)


1. clear:left 具体指什么?

  W3C标准解释:

郑州网易分公司前端面试题(花钱也买不到)_html


2. 如果父元素拥有transform属性,子元素的“固定定位”会转换为“绝对定位”:

  {position: fixed;} → {position: absolute;}

郑州网易分公司前端面试题(花钱也买不到)_H5_02


3. 元素垂直居中的方式:

郑州网易分公司前端面试题(花钱也买不到)_前端_03


4. 什么是BFC,如何触发?

  BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block参与, 它规定了内部的Block如何布局,并且与这个区域外部毫不相干。

  block: display属性为block, list-item, table的元素,会生成block。


BFC布局规则:

  1)内部的Box会在垂直方向,一个接一个地放置;

  2)Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠;

  3)每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此;

  4)BFC的区域不会与float box重叠;

  5)BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此;

  6)计算BFC的高度时,浮动元素也参与计算。


哪些元素会生成BFC?

  1)根元素,如< html>< /html>;

  2)float属性不为none;

  3)position为absolute或fixed;

  4)display为inline-block, table-cell, table-caption, flex, inline-flex;

  5)overflow不为visible;


BFC作用:

  1)浮动元素无法撑起父元素:

  在通常情况下父元素的高度会被子元素撑开,而如果父元素没有设置高度,其子元素均为浮动元素,此时父元素会发生了高度坍塌,上下边界重合,即浮动元素无法撑起父元素。这时就可以用BFC来清除浮动了,将父元素整体设置为BFC环境。

郑州网易分公司前端面试题(花钱也买不到)_html_04


  2)不被浮动元素覆盖 :

  div浮动兄弟遮盖问题:由于左侧块级元素发生了浮动,和右侧未发生浮动的块级元素不在同一层内,所以会发生div遮挡问题。可以给右侧块加 overflow: hidden,触发bfc来解决遮挡问题。

郑州网易分公司前端面试题(花钱也买不到)_H5_05


  3)BFC解决margin塌陷问题:

  margin塌陷问题:在标准文档流中,块级标签之间竖直方向的margin会以大的为准,这就是margin的塌陷现象。可以给双方的父元素加overflow:hidden;触发bfc解决。只有加在双方的父元素下,才能触发bfc。

郑州网易分公司前端面试题(花钱也买不到)_面试题_06


5. 判断客户端是PC端还是移动端:

郑州网易分公司前端面试题(花钱也买不到)_前端_07


  正则验证:

var isMobile = /(iPhone|iPad|iPod|iOS|Android)/i.test(navigator.userAgent);
if(isMobile){
h1.innerHTML="手机用户您好!";
}else{
h1.innerHTML="电脑用户您好!";
}

  类型匹配:

!function(){
var flag = true;
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
if(flag){
h1.innerHTML="电脑用户您好!";
}else{
h1.innerHTML="手机用户您好!";
}
}()

6. JS如何阻止事件冒泡?

  什么是JS事件冒泡?

  在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。

  1)event.stopPropagation();

  事件处理过程中,阻止了事件冒泡,但不会阻止默认行为;

  2)return false;

  事件处理过程中,阻止了事件冒泡,也阻止了默认行为;

  3)event.preventDefault();

  事件处理过程中,不阻击事件冒泡,但阻击默认行为;


7. 如何用JS在表格中插入一行?

郑州网易分公司前端面试题(花钱也买不到)_html_08

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="button" value="添加行" onclick="add()">
<table border="1" id="tab">
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
<td>D</td>
</tr>
</table>
</body>
<script>var j=1;
function add(){
var tableobj =document.getElementById("tab");
var trobj =document.createElement("tr");
var tdobj = document.createElement("td");
for(var i=0;i<4;i++)
{
var tdobj=document.createElement("td");
tdobj.innerHTML=j++;
trobj.appendChild(tdobj);
}
trobj.appendChild(tdobj);
tableobj.appendChild(trobj);
}</script>
</html>

  那天面试官问了我很多问题,我按类别整理了一下,把前半部分放在这里,后半部分牵涉到主流框架和高端优化,我会整理好与大家共享。可以收藏此内容,以防丢失。

郑州网易分公司前端面试题(花钱也买不到)_H5_09

  前端的学习不是一蹴而就,不积跬步无以至千里,不积小流无以成江海。持续不断的努力才能让你我有所收获,专业的知识还得到机构去学习,培训机构的设立有其存在的必然性,你钱花对了吗?

举报

相关推荐

0 条评论