美团-2017前端面试题

一面:
  1. 自我介绍
  2. 做了哪些项目?
  3. 项目中遇到的问题?技术栈上遇到什么问题?
  4. TCPUDP的区别有哪些?(当时只回答出来面向连接和无连接) TCP:面向连接的(三次握手建立连接);保证数据正确性;流模式UDP:无连接的;尽可能交付,不保证数据到达的顺序;数据报模式
  5.  HTTP restful有了解吗?(没有听说过,貌似是一种设计风格,不是一种协议)
  6. 因为上面说完全没有了解过,又问我对于HTTP的状态码是否有了解。
  7.  平时用什么代码管理?(GitHub
  8.  Github常用的命令有哪些?
  9. Fetch命令有没有用到过?是什么用的?(没有用到过Fetch,但是用到Git pull,拉下来最新的代码然后与本地代码合并,但是Fetch不会合并)
  10. 浏览器的缓存机制了解吗?(不太了解)
    浏览器缓存主要通过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-controlprivateno-cache以及must-revalidate时,会重新访问服务器;如果设置了max-age:num,那么在这段时间内是需要访问服务器的;
    如果在URL输入地址访问,当cache-controlprivatemust-validate,第一次会访问,后面不会访问;max-age时过期时间内都不会访问服务器;为no-cache时,访问服务器;
    如果是后退之后,只有no-cache才会每次都访问;其他的都不会访问;
    如果是刷新页面,无论为何值,都会重复访问服务器。
  11. CSS如何实现水平垂直方向的居中(Flex布局; Position结合margin负值实现)
  12. 比如一个模态框,右上角一个关闭按钮,样式就是一个圆圈,里面一个叉,不用Icon图标实现,纯CSS如何去实现?(利用伪元素以及字符的Unicode码)
  13. 原生JS如何实现继承?(原型继承,伪造对象方式)
  14. 讲了好几种继承,后来又问如果让你去实现一个new操作,原生JS如何去实现? 
  15. 原生JS获取DOM节点的API有哪些?(getElementById, getElementByTagName, getElemmentByClassName, querySelector, querySelectorAll)
  16. document.ready和window.load有什么区别?(触发时机不一样;执行次数不一样)
  17. call、apply、bind函数的区别?
  18. 因为简历里有提到ES6,然后问ES6的新特性有哪些?提到箭头函数,又问箭头函数的作用是什么?箭头函数与普通函数有什么不一样?
  19. 也有提到React,问React的Diff算法是否有了解?
  20. 如果让你实现一个购物车,如何去实现?比如复选框,每个物品后面都有一个复选框,和最后也有一个全选的框,如何用原生JS去实现?记得之前看过一篇关于发布订阅模式的帖子,里面有用这个举例,不过想不起来具体怎么做的了
  21. 还有HTTP的Method有哪些?Get和Post有什么区别?如何理解幂等性和安全性?
  22. 最后是一个智力题,有若干条绳子,每一条材质都不均匀,并且不均匀程度也不一样,但每一根烧完都是一个小时。然后问怎么去测一个小时十五分钟的时间?
  23. 最后问如何去学习前端的?前端学了多久?对美团有没有什么认识?介绍了下我所报的部门的业务,我问了下技术栈。一面基本就这么多。

 

二面:

1. 如何实现一个计数器;(闭包就可以) 
2.
加入上面实现的计数器为f函数。

a = f();

b = f();

a();

b();

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

3. CSS的选择器权重 
4.
如何提升页面加载速度? 
5.
因为上面提到回流和重绘,又问回流和重绘的区别? 
6. Web
安全是否了解过?XSS原理和如何防范? 
7.
跨域?如何实现?(提到JSONP,然后问缺点是啥?) 
8. TCP
三次握手? 
9.
数组和链表的区别? 
10.
栈和队列的区别? 
11.
盒模型是啥? 
12.
有一个div父元素,里面有很多子元素,比如divp等等,如何实现点击div父元素里面任意一个紧邻的子元素,打印出其中的innerHTML?(提到事件委托) 
13.
下来是两道简单的算法题:有一个排好序的数组,并且数字都没有重复,给定一个数字m,判断数组中是否存在m的值,并且存在返回位置,如果不存在,返回-1.(用二分查找,属于递归,递归的终止条件).另一个是,求mn次方,mn都是整数。(这里需要考虑整数包括正整数和负整数,另外说了一个O(n)的方法,又问有没有更优的。后面想到可以判断n是否为2的倍数,一直除2,每次最终的数等于上一次得到的数乘以m2次方,这样就是O(lgn)的复杂度应该。) 
14.
下来就是对自己3-5年内有没有什么规划。 
15.
最后就是聊聊天,问目前有没有Offer,然后问面了哪些公司?然后还问家是哪里的这些。 
16.
最后就是有没有问题问他,就问前面的问题哪些答得不好?说了几个缺点,个人也觉得没有答得很好,有几个确实没有发挥好,也有些是考虑不全面的问题。

猜你喜欢

转载自blog.csdn.net/qq_38658877/article/details/78347425
今日推荐