您的位置:首页 > 职场人生

美团-2017前端面试题

2017-10-25 22:10 211 查看
一面:
自我介绍
做了哪些项目?
项目中遇到的问题?技术栈上遇到什么问题?
TCP和UDP的区别有哪些?(当时只回答出来面向连接和无连接) TCP:面向连接的(三次握手建立连接);保证数据正确性;流模式UDP:无连接的;尽可能交付,不保证数据到达的顺序;数据报模式
 HTTP restful有了解吗?(没有听说过,貌似是一种设计风格,不是一种协议)
因为上面说完全没有了解过,又问我对于HTTP的状态码是否有了解。
 平时用什么代码管理?(GitHub)
 Github常用的命令有哪些?
Fetch命令有没有用到过?是什么用的?(没有用到过Fetch,但是用到Git pull,拉下来最新的代码然后与本地代码合并,但是Fetch不会合并)
浏览器的缓存机制了解吗?(不太了解)
浏览器缓存主要通过
HTTP
头部来判断要不要缓存和缓存的过期时间。

Cache-Control
max-age=600
(表示最长缓存时间
600
秒)

Cache-Control
private
(告诉浏览器不要缓存这个文件)

Expires
Mon, 25 Sep 2017 02:32:46 GMT
(表示在这个日期之前缓存都有效)

Expires
-1  
(表示不缓存)

Last-Modified
最近一次文件的更新时间

Etag
:缓存文件的
Hash

也与浏览器操作有关:

如果是打开一个新窗口,当
cache-control
private
no-cache
以及
must-revalidate
时,会重新访问服务器;如果设置了
max-age:num
,那么在这段时间内是需要访问服务器的;

如果在
URL
输入地址访问,当
cache-control
private
must-validate
,第一次会访问,后面不会访问;
max-age
时过期时间内都不会访问服务器;为
no-cache
时,访问服务器;

如果是后退之后,只有
no-cache
才会每次都访问;其他的都不会访问;

如果是刷新页面,无论为何值,都会重复访问服务器。


CSS如何实现水平垂直方向的居中(Flex布局; Position结合margin负值实现)
比如一个模态框,右上角一个关闭按钮,样式就是一个圆圈,里面一个叉,不用Icon图标实现,纯CSS如何去实现?(利用伪元素以及字符的Unicode码)
原生JS如何实现继承?(原型继承,伪造对象方式)
讲了好几种继承,后来又问如果让你去实现一个new操作,原生JS如何去实现? 
原生JS获取DOM节点的API有哪些?(getElementById, getElementByTagName, getElemmentByClassName, querySelector, querySelectorAll)
document.ready和window.load有什么区别?(触发时机不一样;执行次数不一样)
call、apply、bind函数的区别?
因为简历里有提到ES6,然后问ES6的新特性有哪些?提到箭头函数,又问箭头函数的作用是什么?箭头函数与普通函数有什么不一样?
也有提到React,问React的Diff算法是否有了解?
如果让你实现一个购物车,如何去实现?比如复选框,每个物品后面都有一个复选框,和最后也有一个全选的框,如何用原生JS去实现?记得之前看过一篇关于发布订阅模式的帖子,里面有用这个举例,不过想不起来具体怎么做的了
还有HTTP的Method有哪些?Get和Post有什么区别?如何理解幂等性和安全性?
最后是一个智力题,有若干条绳子,每一条材质都不均匀,并且不均匀程度也不一样,但每一根烧完都是一个小时。然后问怎么去测一个小时十五分钟的时间?
最后问如何去学习前端的?前端学了多久?对美团有没有什么认识?介绍了下我所报的部门的业务,我问了下技术栈。一面基本就这么多。

 

二面:

1. 如何实现一个计数器;(闭包就可以) 

2. 加入上面实现的计数器为f函数。

a = f();

b = f();

a();

b();

问输出是多少?(这一题答得不好,其实a和b是一样的函数,应该都输出1) 

3. CSS的选择器权重 

4. 如何提升页面加载速度? 

5. 因为上面提到回流和重绘,又问回流和重绘的区别? 

6. Web安全是否了解过?XSS原理和如何防范? 

7. 跨域?如何实现?(提到JSONP,然后问缺点是啥?) 

8. TCP三次握手? 

9. 数组和链表的区别? 

10. 栈和队列的区别? 

11. 盒模型是啥? 

12. 有一个div父元素,里面有很多子元素,比如div,p等等,如何实现点击div父元素里面任意一个紧邻的子元素,打印出其中的innerHTML?(提到事件委托) 

13. 下来是两道简单的算法题:有一个排好序的数组,并且数字都没有重复,给定一个数字m,判断数组中是否存在m的值,并且存在返回位置,如果不存在,返回-1.(用二分查找,属于递归,递归的终止条件).另一个是,求m的n次方,m和n都是整数。(这里需要考虑整数包括正整数和负整数,另外说了一个O(n)的方法,又问有没有更优的。后面想到可以判断n是否为2的倍数,一直除2,每次最终的数等于上一次得到的数乘以m的2次方,这样就是O(lgn)的复杂度应该。) 

14. 下来就是对自己3-5年内有没有什么规划。 

15. 最后就是聊聊天,问目前有没有Offer,然后问面了哪些公司?然后还问家是哪里的这些。 

16. 最后就是有没有问题问他,就问前面的问题哪些答得不好?说了几个缺点,个人也觉得没有答得很好,有几个确实没有发挥好,也有些是考虑不全面的问题。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  前端面试题