一面
-
6道基本技术问题,居中、闭包、块级元素和行内元素等(答案在下方)
-
某个项目的页面布局方式,缓存的设计和优化方式(本地存储和协议相关的)
-
ajax 的原生写法(创建 XHR 对象, open() , setRequestHeader() , send() , onreadystatechange )
-
vue-router 的原理( hash , HTML5 新增的 pushState )
二面
面试官:“你觉得你擅长CSS还是JS?”
我:“JS。”
面试官:“好,那我问你一道CSS的问题。”
我:“???”
- CSS 三栏布局,左右定宽,中间自适应( flex , grid 等)
- 解释构造函数、对象、原型链之间的关系
- 手写代码,实现原型式继承
- 手写代码,实现借用构造函数
- Vue 双向绑定原理(事件监听, getter 和 setter )
- Virtual DOM 和 diff 算法( DOM 树,分层比较, key , DocumentFragment )
- jQuery 链式调用的原理(jQuery链式调用)
- 最近碰到的技术难题,不一定是前端(我答了B站的爬虫与反爬虫)
- 关于反爬虫,请求头中的这两个字段要修改。Host :
- 发出请求的页面所在的域。
Referer :
- 发出请求的页面的 URI 。
注意, HTTP 规范将这个头部字段拼写错了,而为保证与规范一致,也只能将错就错了(这个英文单词的正确拼法应该是 referrer )。
HR面
HR小姐姐似乎对我们学校挺熟悉的,但好像不是校友…… 谈一谈过去做过的项目、面对的难题(和UI的沟通问题,顺便引出我后来自学了平面设计。)
- 又提了提爬虫
- 家在哪里(照实回答就行)
- 未来职业规划(表示出你想在公司长久待下去,继续进步就行)
- 具体的技术发展方向(我答的是“能支持上亿用户使用的前端架构”)
- 为了往这个方向发展,你所做的努力(我答的是“在看《高性能网站建设》、自学后端,顺便提了一下‘东北Java第一人’姜国海老师”)
- 预测一下前端未来的发展趋势(我答的是“自动化”)
- 拿了哪家的offer?(……还是照实回答吧)
实习时间(我建议把时间段说得宽松一些,到时候真的冲突再商量)
对于面试题我刷了这套比较综合的前端面试题,很多内容面试官都问到了,当然我也刷了其他很多的面试题,总的来说还是这套重合率比较高哈哈
最后:
总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。
面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。