2017.09.29更新
百度面完三面收到sp offer,百度地图部门,base北京
阿里被调岗到阿里音乐,已收到意向,base杭州,这个比较运气。。
腾讯给的意向是IEG的运营开发,所以偏后台一些,base深圳
网易云音乐收到sp offer,base杭州
补完了百度三面的所有面经,正式结束秋招吧。

总结一下,现在互联网公司对于前端的要求提高了很多,已经不满足于招聘一个只会写页面的前端,由于一些MV*框架在前端大行其道,并且很多后端的业务逻辑也在逐步往前端迁移,所以前端在面试的时候,会涉及到很多除了基础之外的东西。

  1. 框架源码,这个是现在所有大厂都很看重的一点,比较深入地阅读源码表示你对于框架的了解程度已经不仅仅是使用,阅读源码可以很好地提升自己的代码规范性,并且在进行其他框架开发的时候很有借鉴意义。
  2. 算法,有些面试中会提出一些常用的算法问题,所以对于一些基本的算法的思路要有一定的了解。
  3. 后台,现在前端已经偏全栈方向了,可以看到下面的面经中很多的问题都涉及到了后台的相关知识,如果会一种或者多种后台语言的话对于面试和工作都很有帮助。
  4. 基础,前端需要了解的计算机基础主要在网络方面,所以认真看下HTTP和TCP/IP也是很重要的。

本文更新于2017.09.06
补充一下之前的百度面经,虽然只有一面。。
昨天收到了猪场的offer和IEG的意向,把之前的面试经历总结一下回馈下牛客。搜狐、拼多多和华为就不贴了。

985渣硕,实验室不让实习,所以也没有实习经历。

百度

一面

百度的面试挺基础的:

  1. 首先让写一个对象来满足A == '1',然后问==和===的区别。
  2. HTTP协议缓存的实现和缓存相关的报文首部。以及HTTP的状态码。
  3. 手写一个JSONP的实现。
  4. 含有定时器的代码的执行顺序。这个搞懂了JavaScript内部定时器和事件队列的原理就没有什么问题了。
  5. 轮播的实现。
  6. 给出一个(010)111111,然后写代码来将这个模式的字符串转换为010-111111模式。
  7. 有关this指向的一个题,让说出代码的运行结果。
    因为有几个需要写代码的问题,所以虽然问题不多但是面试时间还是比较长的。

二面

一面两天之后进行二面,百度前端面试的时候对于基础还是比较重视的。
这位面试官也是我面了这么多技术面试唯一的女程序员。。Orz

  1. 了解JavaScript的异步吗?
  2. 手写一个Ajax的Promise封装。
  3. 手写一个NodeJS的fs.readFile方法的Promise封装。
  4. 从一个文件中读取另外一个文件的名字,然后再读取另外一个文件的内容,用之前写的fs.readFile的Promise来进行实现,这里推荐大家用catch来进行reject的捕获,会有加分哦。
  5. JavaScript回调函数的callback hell如何解决。
  6. 对于ES6了解多少,说一下一些常用的方法。
  7. 如何对于数组进行深拷贝。
  8. 如何使用ES6的generator函数来进行异步的调用,手写。
  9. CSS3了解的多吗?
  10. position的几个属性有什么区别和使用情况。
  11. 生成BFC的几种方法。
    CSS的问题都答的不是很好。所以面试官还问我是不是不经常写CSS。。。
  12. HTTP协议中常用的报文头。

三面

三面看起来应该是团队的leader,对于项目挖的很深。如果不是自己真正实现的项目,或者是在项目上有一些自己的创作。。很可能会被问出破绽。

主要对于自己项目中遇到的几个技术难点进行深挖,会问到项目难点的解决方案和具体的实现思路,这里会问的很细,而且问题也是随着你的项目来进行挖掘的。

在项目中会遇到一些团队合作上面的问题,如何解决这些问题,包括接口协调,一些模块之间的耦合是如何进行协同开发的等等。

这一面结束之后就收到了意向的短信,一个没有HR面试的公司对于技术的重视程度确实应该还是蛮高的。

阿里蚂蚁金服

一面

阿里是非常喜欢问源码的公司,一面的时候面试官说他对基础不感兴趣,所以讲了下下面几个模块的源码和主要流程。
React、React-Router、Redux、Vue的大致的实现原理,然后比较了下Vue和React的性能的优势和劣势。
一面很快,也就是十几分钟,最后和面试官聊了下RxJS拖了些时间。

二面

二面在差不多一周之后,还是技术面,一上来也是各种框架和框架派生的一些技术的源代码和实现原理,之后问了点基础问题。

  1. git的一些命令,git pull和git fetch的区别。
  2. ES6中箭头运算符this指向问题。
  3. CSS中伪类选择器选择列表最后一个元素。
  4. JavaScript原型链,以及如何实现继承。
  5. 对于现在的前端有什么看法,未来的发展方向是什么。

大概问了不到30分钟。

三面HR:

  1. 阿里的HR小姐姐真的超级可爱,告诉我说她是一个懂技术的HR。QAQ。
  2. 问了些项目,项目中遇到的问题,自己的缺点,项目中的问题是怎么解决的等等。

真的是一个懂技术的HR小姐姐。。
说后面可能还有一轮技术面试。

四面leader

  1. HTTPS的原理
  2. 端口号的作用
  3. n个元素的数组,求出一个数字最少的组合,使得这个组合的和为m,使用动态规划。
  4. 一个proxy服务器上有一个很大的域名黑名单,如果快速对于通过proxy的请求进行过滤。
  5. 和上面的类似,一个进阶问题,如果有一个很大的关键词黑名单,如何快速地对通过proxy的请求进行过滤。

    最后等消息等到了现在(2017.09.06),之前一面的面试官加了微信,说因为HC问题不一定能给offer,所以感觉没有交叉的我GG了,问了下自己存在的问题,面试官说一个面试官给了数据结构和算法一般,应该是leader的时候,最后一个问题没有答好导致的。

调岗阿里音乐

(2017.09.28)本来以为阿里已经没戏了,但是在已经准备签了网易两方之后,又收到了调岗到阿里音乐的消息,又进行了一次技术确认面试,问了几个不是很难的问题就让等HR联系了。

  1. 平常使用的技术栈是什么?
  2. 对于React组件嵌套造成的性能问题是怎么解决的?
  3. Redux对于React意味着什么?
  4. Redux在使用的时候,对于状态的越来越臃肿这个问题是怎么解决的?
  5. webkit内核在进行渲染的时候会出现什么样的性能问题?
  6. 这些性能问题在进行编程的时候怎样规避?

腾讯IEG

腾讯IEG的面试对于前端非常不友好。也可能是部门的关系吧,最后查了下自己的简历评级是A+,能在最后被捞起来面一下也是蛮幸运的。

电话一面

  1. MySQL的引擎有哪几种。
  2. 代理服务器的负载均衡,KeepAlive和lvs。
  3. 实验室项目的负载均衡是怎么实现的。
  4. MySQL如何查出当天所有登录超过10次的用户,数据库里面存储的有登录日志,字段类型为时间戳。
    主要聊得是实验室的项目和PHP、MySQL相关的东西。

电话二面

  1. 聊项目
  2. PHP如何进行高并发请求处理
  3. 包括代理,负载均衡,缓存层的实现这些问题以及Apache和Nginx的区别和PHP本身对于阻塞的处理。
  4. PHP的内存泄漏问题。
  5. 最后扯到了五面里面唯一的纯前端问题:闭包。。

现场一面:

首先做了一套本科计算机综合试卷。。。里面有操作系统、数据结构、算法、计算机网络、C、C++等各种内容的卷子。。做的我是心神荡漾。。

然后面试官问你对C还是C++更熟悉一点,我支支吾吾说了C。。然后就让我写了一个C语言的字符串转INT的函数。。。

然后问了如何使用PHP对于TCP请求进行格式化。

之后问了很多和海量数据请求处理的算法和数据结构的题目,都是一些很经典的题目。

最后做了个智力题,让用抛硬币模拟随机数1、2、3。这个还好之前看到过。。

现场GM面 + HR面

GM和HR基本聊得差不多。。都是一些HR常问的问题,GM基本在聊人生。。也不知道是什么情况,现在也走完了面试流程,最后等通知。

网易云音乐

杭州现场面试,前一天早晨起来面了华为,下午在机场做了滴滴笔试,晚上航班延误到4点多才到杭州,早晨8点起来赶赴网易,也是为了offer拼了老命。

一面

一面,是一个看起来就很厉害的大佬。。也是我面试的所有的最紧张的一面。。大佬给的压力太大了。。

首先让分析一个dropdown的效果,根据服务器返回的数据来更新dropdown列表的内容,如何实现,并且对于请求是否需要进行延迟操作,也就是debounce,然后手写了debounce的代码。

然后一个大量图片的轮播图怎么实现和优化,说了lazy-load的具体实现,然后动画切换的实现,使用三个元素就可以实现了。两个用于动画效果,一个用于预加载图片,在进行一次移动之后,将移出视口的元素卸载然后挂载到三个元素的最后。

然后还问了Vue和React源码的一些相关的东西,最后做了一个和函数调用的this对象绑定相关的题目。

二面

二面总结一下就是deep into React,基本React能想到的东西都被问到了,组件更新过程,源码内部的一些实现细节包括Transaction等等,Vue更新过程和React的区别,Vue和React的设计思想有什么区别和优劣,甚至antd相关的也被问到了。。。HOC实现组件的封装,antd是如何实现组件的封装的,React-Redux的HOC的实现,connect函数的实现,感觉自己还是不够深入。

HR面

HR面其实都是老一套了。。实习,生活,家庭各种问题。。最后面完了让我再等10分钟,然后查结果,被额外加了一面,带我去见总监的HR小姐姐真的好可爱。给小姐姐打call。

GM面

其实就是对于思想方面的一轮面试,抛开技术和实现主要谈思想,对于前端整个技术栈以及web的技术栈的理解,随手问到了一些CSRF,XSS,浏览器线程模型这样的基础知识,想加入一个什么样的团队等等。

由于最近面试的太多了,能记得的就这么多了。希望能够帮助到大家,自己也可以复习一下之前没有理解好的知识。
附掘金征文大赛链接