美团是我自学前端以来第一次去现场的面试,在网上搜了一下以往的面经,普遍反映说美团面试超级高效,都是技术面,这次去真的是体验到了。一共面了三轮,每轮都差不多一个小时,都要写代码。
一面主要是考察对CSS、JavaScript基本知识的掌握,数据结构算法也会问。总之就是对考察基本功啦。
二面就没那么细了,稍微宏观一点,有一种考察你对前端有没有sense的感觉,比如在怎么实现一个模块,有哪些方法、注意事项啥的,当然也会写代码。
三面应该是Boss级别的吧,各种问题啊,兴趣爱好未来规划啥的,感觉有点像了解你这个人的性格和美团契合不了。前面说了都是技术面嘛,最后还是要写代码的。
由于自己才学两个月,心里超级没底啊,很紧张的说。住同学那儿离得远,买了袋奥利奥心想那边有没有快餐啥的到了再去吃午饭,事实证明我想多了,导致每轮面到后面我都感觉到胃在收缩啊,无法思考啊妈蛋,然后面完休息的10来分钟狂吃奥利奥,,,好囧,,,以后一定要吸取教训,吃得饱饱的去。
噢噢,虽然最后还是没有通过面试,但是美团绝对是我目前所有面试中收获最多的一次,觉得很有必要记录一下。当当当,干货来了:
一面
一面是个和我年纪差不多的萌萌哒小哥,啊哈哈,一看到他那么年轻,瞬间有种同龄人的亲切感,没那么紧张了。
不过小哥虽然看起来稚嫩,也是绝不废话,干净利索地在纸上记录他提的问题还有我的回答,不一会儿就记了好多。一面就主要是考察前端的基础还有算法。。。(小哥问我算法和数据结构了解得怎么样,我好心虚,说只了解基本的排序啥的)。
好了开说问题:
1.一个浮动的div后面又跟了一个div,在页面上是怎么布局的:
分别讨论了这几种情况:
(1)前一个div有宽度和高度,后一个div有高度宽度没有设置。
我勒个去一开始答错了,说没有个宽度那应该是条竖线吧,小哥笑了笑说display你有了解么,说了一通,他问display:block是啥意思,又blalala,小哥说那块元素是啥,我说会占满整行,小哥就说那为啥那个会是竖线呢。好丢人啊。。。这么基础的。
(2)后面一个div中间有很多文字,会怎么显示。
(3)下面的图怎么实现:
2.怎么实现焦点轮播图
除了给序号绑定事件之前用属性记录外,还能用什么。。。闭包的理解差到爆啊。
3.绑定事件都有哪些方法,你为什么要用onclick这种方式
4. 事件捕获的应用场景,那事件冒泡有用过吗,什么时候需要用到事件冒泡。然后出了一道题:
<\ul id=’list’>
<\li><\li> ….有n多个
<\ul>
要实现点击一个li就能显示它内部文本。
我写了个最普通的在li上绑定事件,小哥说那要是li是动态增长的呢。你获取li集合是之前的了,我说那用事件冒泡,给ul绑定点击事件,事件处理程序中再重新获取它下面的li,动态给每个li 绑定事件,小哥说那你的这个ul只是给li绑定了事件,但是这次就不能触发li上的事件了呀,然后又讨论到怎么知道点击到哪个li,小哥说可以用event对象,它应该是有个属性吧,,,但是不知道。。。
查了一下可以用event对象的属性target或者是srcElement,他们都指向最具体的那个目标元素:
var list=document.getElementById("list");
list.onclick=function(ev){
var oEvent=ev||event;
var target=oEvent.target||oEvent.srcElement;
alert(target.innerHTML);
}
事件会冒泡