前一段时间一直在不断地面试,无奈个人技术能力有限、项目经验缺乏,最终都没有进入到HR面试环节,全~~挂~~了~~
面试了这么多,结果不是太好,有点儿受打击,也促使我近期静下心来反思自己的问题:哪些技术知识掌握的还不错,哪些还有待提高,哪些是需要去恶补的。
阿里面试了三个部门,都是在二面挂的,网易和滴滴也是各两轮技术面试,加一起就是十次面试经历。在此回忆总结一下,既是给社区朋友的一个参考,反馈社区,更是给自己一个好好的总结。
HTML
HTML5新增了哪些内容或API,使用过哪些
input和textarea的区别
用一个div模拟textarea的实现
移动设备忽略将页面中的数字识别为电话号码的方法 --- 2017.06.10补充
CSS
左右布局:左边定宽、右边自适应,不少于3种方法
CSS3用过哪些新特性
BFC、IFC
对栅格的理解
(水平)居中有哪些实现方式
1像素边框问题
JavaScript
图片懒加载
实现页面加载进度条
事件委托
实现extend函数
为什么会有跨域的问题以及解决方式
jsonp原理、postMessage原理
实现拖拽功能,比如把5个兄弟节点中的最后一个节点拖拽到节点1和节点2之间
动画:setTimeout何时执行,requestAnimationFrame的优点
手写parseInt的实现:要求简单一些,把字符串型的数字转化为真正的数字即可,但不能使用JS原生的字符串转数字的API,比如Number()
编写分页器组件的时候,为了减少服务端查询次数,点击“下一页”怎样能确保还有数据可以加载(请求数据不会为空)?
ES6新增了哪些特性,使用过哪些,也有当场看代码说输出结果的
JS模块化的实践
require.js的实现原理(如果使用过webpack,进一步会问,两者打包的异同及优缺点)
promise的实现原理,进一步会问async、await是否使用过
实现gulp的功能
使用前端框架(angular/vue/react)带来哪些好处,相对于使用jQuery
vue双向数据绑定的实现
单页应用,如何实现其路由功能
性能优化
项目中使用过哪些优化方法
输入一个URL,Enter之后发生了什么
(承上)页面的渲染过程
优化中会提到缓存的问题,问:静态资源或者接口等如何做缓存优化
页面DOM节点太多,会出现什么问题?如何优化?
项目经历
这些大公司招聘都是高级工程师起步,所以对简历上的项目会刨根问底。很多很多问题都是由项目中拓展开的,像优化相关的东西,还有前面提到的require.js、promise、gulp,项目中用到了某项技术,高级工程师的要求是:不仅会用,更要知道其原理。对自己的提醒:项目中用到的技术,不能说完全掌握其原理吧,但大致的实现还是有必要了解一下的。
介绍一下你做的这个项目,进一步细问:整个项目有哪些模块,你主要负责哪些
你在项目中的角色
你在项目中做的最出彩的一个地方
碰到过什么样的困难,怎么解决的
(如果你是这个项目的负责人),任务怎么分配的,有没有关注过团队成员的成长问题
前端安全问题:CSRF和XSS
其他
为什么选择做前端(我靠,我都快转前端两年了,还在问这个问题啊...)
你希望进入一个什么样的团队
你有什么问题想问我(面试官)的吗?
前前后后有两个月时间,暂时只回忆起这么多了,如果还有其他的,后期我会补上。
webpack其实也是必问的,由于我说还没使用过webpack,只是了解,写过demo,面试官就没问太深。如果你的简历中有提到webpack,请提前准备好,比如webpack打包原理、如何写webpack插件等。
面试阿里云那个岗位的时候,有要求算法和数据结构,有能力者多多准备吧。
阿里、网易的面试几乎都是围绕项目展开的,所以提醒自己搬砖的时候多想想、多看看,多站在一个高度去看整个项目:用到什么技术,技术实现原理是什么,项目框架怎么搭建的,采取安全措施了吗...
后记
有几个岗位感觉就是挂在了项目上。自己做过一个前后端分离项目,但是经过几次面试,发现这个项目还存在某些问题,比如:整个登录注册系统是不完善的,关于权限的处理上甚至是有很大缺陷的;这个项目的node层只是起到构建前端项目(gulp)、渲染index.ejs、代理转发api接口等作用,但是面试官指出说你这个node也太简单了,导致我都在怀疑这是个假的前后端分离...还是需要大神带多见见世面啊,求带...
虽然五次面试都没成功,但自己也收获了很多很多:认识了大牛hb,一个超有文艺气息的资深前端;多谢fw大大帮我内推阿里,十分感谢您对我的认可;也见到了平时只能在视频上看到的cjf老师,谢谢您的指点;对高级前端工程师所具备的技能有了更清晰的认识;肯定也增加了很多面试经验...
再好好提升一下,打算过段时间重新上阵,也祝自己多点好运气,早日进入心仪的企业,毕竟,当初来杭州的时候就是以网易、阿里为目标的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。