9

这是去年8月份秋招的面试,五面都面完了,给大家贡献干货吧。我没写问题的答案,有什么问题可以留言区问我。

一面 电话面(1小时)
电话面问题不多,但是十分考验对相关知识熟悉程度,面试官是 P7(不理解这个就去百度吧)

以前做过什么项目?使用了什么技术?(balabala...)
继续上一个问题,为什么使用 gulp 不用 webpack?
你都使用过哪些框架?(就说熟练XXX框架,用过了解XXX框架)
继续上一个问题 zepto 和 jquery 是什么关系,有什么联系么?
有没有看过框架的源码?(没看完一个框架完整的源码还敢出来混?我只看过 jquery)
继续上一个问题,jquery 源码中你对哪个部分印象最深,讲一讲?(我就说了构造函数返回原型链中的 this)
最近在实习是吗,实习了多久,在哪实习,实习的工作是什么?
实习过程中能不能完成公司给你的工作?工作量如何?
实习过程中遇到什么难题,是怎么解决的?
函数了解吗?闭包是什么?为什么要用闭包?commonJS 知道不,define 时用闭包做了什么?
对象熟悉吗?一般考你对象的话具体会考什么?(居然还可以这么提问)
继续上一个问题,你知道原型链是干啥的么,为什么要有原型链?
熟悉 this 吗?js 中的 this 和 c++/java 中的 this 有什么区别?
继续上一个问题,如果在构造函数中为 this 赋值 1 会发生什么?
继续上一个问题,那应该怎么改变 this 的值?
学习前端多久了,平时怎么学习前端?
未来3-5年有什么规划?(我提到了全栈,于是有了下面一个问题)
什么是全栈,你理解的全栈是干嘛的?
倾向于走什么技术栈?(我提到了 nodejs 于是又有了下面 一系列的问题)
nodejs 你了解多少?
所有的 ES6 特性你都知道吗?如果遇到一个东西不知道是 ES6 还是 ES5, 你该怎么区分它
Express 和 koa 有什么关系,有什么区别?
为什么选 nodeJS 为什么不喜欢 php 和 python?
你对 php 和 python 掌握的怎么样?
你还有什么问题想问我?
对加班有什么看法?
二面 视频面(1.5小时)
面试一开始面试官给我展示阿里远程会议的各种酷炫功能,随后开始面试。面试官还是 P7

首先是给了好几个代码题,问其中每个 console.log 的输出是什么。这里的代码的确很多,面完全部面试写这个文章的确记不起来了。值得一说的是每个题都有陷阱,十分容易错的地方,我也不例外的掉坑里了,面试官会告诉你错了,然后让你自己思考为什么错?正确的应该是什么?当然还要解释原理。

看完了题目就该自己写了,共享桌面。

写一个_new()函数,实现 new 关键字的功能;
写完了,需要解释思路,当然如果有那个地方写错了,一定是要深究的。这里面会包含一些深层次的问题:prototype 和 proto 的关系是什么?

三面 视频面 (40分钟)
二面面试官很愉快的说我通过面试了,去叫了另一个面试官。这次的面试官,应该也是 P7,上来就问问题:

自我介绍一下(发现问题点时打断介绍,就开始问问题)
你前端是自学的呀,怎么个自学法?
你都看过什么书?最近在看什么书?
用过什么框架?有没有看过什么框架的代码?
你做过什么项目?
有没有学过设计模式?
说一说观察者模式吧!能不能写出来?(能,那就写)
为什么只知道这么几个设计模式?
你最大的优点是什么?
那你最大的缺点呢?
如果有个功能你写的代码有一个 bug , 刚好你同时的代码可以弥补你这个 bug, 但是他的代码有新的 bug 怎么办?
如果小组开发的时候对于一个软件的各个功能,每个人都有一定的 bug 怎么办?
熟不熟悉 git,你用它做过什么?
你大学期间做过最疯狂的事情是什么?
熟不熟悉 http? http 和 https 有什么区别?
你除了写博客还有什么输出?
做代码的时候有没有考虑过安全问题?怎么防止注入?
如何防止 XSS 和 CORS? 被攻击了该怎么办?
现在你的领导给你了一份工作,要求你一个星期完成,但你看了需求以后估计需要3周才能完成,你该怎么办?
四面 交叉面试 电话(50分钟)
我投的是天猫事业群,交叉面试就是找个别的事业群的面试我,防止作弊。这次是一个 P9 段位的面试官:

自我介绍一下
为什么学前端?
你学过 c++ 是么,问你几个 c++ 的问题(简历里写了以前学过 c++):
你学 c++ 到什么程度了?
你用过 STL 吗?里面的 Map 类是什么结构的?
static 关键字怎么用?
static 变量存储在堆还是栈?
Qt 中 main 的执行过程是什么样的?
最近做过什么项目?使用了什么框架?
有没有看过 wordpress 等博客框架的源码?
为什么使用 Express 不用 koa?
gulp 和 webpack 有什么区别,为什么你要用 gulp?
知道 XSS 吧,怎么防护?cross-site script
你项目中如何进行用户输入过滤的?都过滤了那些内容?(根据回答有了下一个问题)
为什么没有过滤<img>标签?
知道 CSRF 么,怎么防止 CSRF? cross-site request forgery
你前端用了Bootstrap, 知道它的响应式是如何实现的吗?
媒体查询的原理是什么?
知道流媒体查询吗?
那我告诉你什么是流媒体查询(......此处省略100000字),你懂了吗?(我说懂了就有了下一个问题)
现在要你实现一个流媒体查询,你怎么做?
你现在在实习是么,实习的主要工作是什么?
你实习过程中在做一个 app, 如果让你来主导这个项目,你使用什么框架?为什么?
学过 es6 是么。知道 promise 么?它用来做什么?
promise 只有2个状态,成功和失败,怎么让一个函数无论成功和失败都能被调用?
Promise.all() 是干什么用的,怎么用?
怎么判断一个对象是不是数组,尽可能多的说出你知道的方法?
怎么把一个类数组对象转为数组?
知道本地存储吗,localStorage 是干什么的?
localStorage 的最大存储空间是多少?如果存超了对怎么样?
localStorage 是注册在几级域名底下的?
说一下 Nodejs 的 event loop 的原理
Angular 和 vue 的数据绑定是怎么实现的?有什么区别?
平时是如何学习 js 的,从哪里获得相关信息?
mysql 和 mongoDB 有什么区别?
五面 HR面 电话(30分钟)
你平时的是怎么学习前端的?
你的专业比较偏硬件,为什么不学习硬件了?
你为什么要学习前端?
你转行学前端和专业的毕业生比能有什么优势?
你学习过什么框架,现在在学习什么框架?
为什么先开始学习 React 而不是 vue、Angular 或其它框架呢?(不愧是阿里巴巴的 HR,技术面感觉扑面而来)
你平时是如何获取前端知识的?
你是通过业余时间完全自学的前端,你是如何制定学习计划和学习目标的?
你学习的过程中,有没有真正的做过什么东西?
除了做这些东西你还有什么输出?
有没有经常和前端同行业的人交流,通过什么途径交流?
你现在在实习是么,实习工作是什么?
那你为什么不想留在现在实习的公司?
你在实习期间最大的收获是什么?
前端现在更新的这么快,你对前端行业有什么看法?
现在给你一个项目,有两个框架可以选择,一个你比较熟悉,另一个是个新框架,大家都没用过,你会如何选择?
你家是(xx隐私省略)的,现在在青岛上学,以后让你来北京的话你有什么看法?
你除了前端还有没有想从事的行业,不限于技术?
你还投了哪些公司,现在招聘进度如何?
写在最后
我觉的整个过程心态实在太重要了。作为一个前端人,阿里巴巴,是我最想去的国内公司,我看重的也不是他薪水如何,完全在于他的技术,这一点 github 可以说明一切。阿里是个十分重视基础的公司,和浮躁的前端大环境形成鲜明的对比。但其实,前端的更新速度如此快,还是基础的东西日久弥新。

我不是第一次投阿里巴巴,所以心态一开始还是挺平和的。电话面也很放松,也适当的开了个玩笑(给面试官黑了一把世界上最好的语言)。但这是我第一次电话面试通过(以往不是被笔试虐了,就是挂在了面试。别问我投过多少次),随后通过二面,三面,hr面,真的会感到越来越紧张,越来越患得患失。平时在公司实习,本来就没有时间准备面试,但偏偏这种心态十分影响复习效率。可能是真的太在乎这个面试结果了,在整个过程(1个月)中都会感觉这是我离梦想中的公司距离最近的一次,绝对要保证万无一失,要表现的很好。这是自己给自己的一种无形压力和紧张情绪,有时连做梦都在面试!!还好我坚持下来了,坚持到最后了。

技术型岗位的应聘虽然不需要为每个公司有针对性的编写简历,但是一定要足够了解这个公司,明白公司需要什么,你能为公司带来什么。
如果你还年轻,距离找工作还有几年,那你需要一个清晰的规划,学什么知识点,掌握什么技术,这些规划都应该以目标公司的需求为导向。


Faremax
1.7k 声望705 粉丝