我大三的时候在春招过程中参加了多家大公司的面试后,拿到了腾讯的前端实习 offer,在这里做一些总结,希望给还未参加过实习面试的同学一些帮助。
一、简历的准备
简历制作是很重要的一个环节,一份好的简历会给面试官留下很不错的印象,也有助于你顺利通过简历筛选环节。
简历制作过程中重点要突出你在校园内参加过的**项目和竞赛
以及获得的成就
**,这是简历筛选中最看重的。学历的高低并不是最重要的,只要你有着不错的项目经历,都是有机会参加面试的。在我们实习群里学历从专科到 985、211 的硕士都有,所以请勇敢的尝试。
推荐一个简历制作的网站-超级简历
二、先投递中小型的公司
先去中小型公司练练手,感受一下面试的过程和氛围。
这样可以让你快速的熟悉面试过程的氛围,让你在之后的面试过程中不至于紧张过度。 我在参加春招之前,压根没有任何面试的经验,当时投的第一家公司是CVTE一家做音视频硬件的公司。
第一次面试是通过牛客网进行远程视频面试的,因为没有经验,本身也没有刷过面试题,所以第一次面试理所应当的被问倒了。
第一次面试也是紧张的不行,以至于有紧张到发抖和出冷汗。不过这次面试让我清晰的认识到自己的不足,并记录下面试过程中被问到的问题,并在之后的几天内网上找大量的资料进行恶补。在之后的面试时就更加从容一些了。
三、广撒网多捞鱼
在你的承受范围之内尽可能的多投几家公司,正所谓广撒网多捞鱼嘛,尝试的越多机会自然也就越多。
当然如果你是大佬只想去一家公司,那就不适用这一条了。
我的整个春招过程大概在 20 天左右,总共投了 4-5 家大公司,从一开始完全没有面试经验,到后面甚至一周内参加四家大公司的面试都从容淡定。所以只要有机会就多去尝试。
四、记录与总结
请务必在每一次面试结束后记录下面试过程中,你不会或者没回答好的问题。因为这些问题很可能你在下次面试过程中会被问到。
其次多总结自己的不足,只有意识到自己的不足之处,才能更好的去补足。
拿我自己来说,在第一次面试时面试官问我http缓存,我是一脸懵逼答不上来,然后我在面试结束后就恶补这个问题,在后面几次面试过程中,几乎每次面试都被问到这个问题,我也能够从容的回答了。
五、我收集的面试题集
以下是我在整个春招过程中收集的前端面试题:
HTML
- 浏览器页面有哪三层构成,分别是什么,作用是什么?
- HTML5的优点与缺点?
- Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?
- HTML5有哪些新特性、移除了哪些元素?
- 你做的网页在哪些浏览器测试过,这些浏览器的内核分别是什么?
- 每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗?
- 说说你对HTML5认识?(是什么,为什么)
- 对WEB标准以及W3C的理解与认识?
- HTML全局属性(global attribute)有哪些?
- 说说超链接target属性的取值和作用?
- iframe有那些缺点?
- Label的作用是什么,是怎么用的?
- 如何实现浏览器内多个标签页之间的通信?
- 谈谈你对canvas的理解?
- …
CSS
- 解释一下CSS的盒子模型?
- 请你说说CSS选择器的类型有哪些,并举几个例子说明其用法?
- 请你说说CSS有什么特殊性?(优先级、计算特殊值)
- 常见浏览器兼容性问题与解决方案?
- 列出display的值并说明他们的作用?
- 如何居中div, 如何居中一个浮动元素?
- 请列举几种清除浮动的方法(至少两种)?
- block,inline和inlinke-block细节对比?
- 什么叫优雅降级和渐进增强?
- 说说浮动元素会引起的问题和你的解决办法
- 你有哪些性能优化的方法?
- 为什么要初始化CSS样式?
- CSS样式表根据所在网页的位置,可分为哪几种样式表?
- 请你说说em与rem的区别?
- …
JavaScript
- js的各种位置,比如clientHeight,scrollHeight,offsetHeight ,以及scrollTop, offsetTop,clientTop的区别?
- js拖拽功能的实现
- 异步加载js的方法
- js的防抖与节流
- 说一下闭包
- 说说你对作用域链的理解
- JavaScript原型,原型链 ? 有什么特点?
- 请解释什么是事件委托/事件代理
- Javascript如何实现继承?
- 函数执行改变this
- babel编译原理
- 函数柯里化
- 说一下类的创建和继承
- 说说前端中的事件流
- 如何让事件先冒泡后捕获
- 说一下图片的懒加载和预加载
- js的new操作符做了哪些事情
- 改变函数内部this指针的指向函数(bind,apply,call的区别)
- Ajax解决浏览器缓存问题
- …
由于篇幅有限,只能分享部分面试题,完整版面试题及答案可以【点击我】阅读下载哦~无偿分享给大家
Vue
- Vue中 key 值的作用
- Vue 组件中 data 为什么必须是函数?
- vuex的State特性是?
- 介绍一下Vue的响应式系统
- computed与watch的区别
- 介绍一下Vue的生命周期
- 为什么组件的data必须是一个函数
- 组件之间是怎么通信的
- Vue.cli中怎样使用自定义的组件?有遇到过哪些问题吗?
- Vue如何实现按需加载配合webpack设置
- 简单描述每个周期具体适合哪些场景
- scss是什么?在Vue.cli中的安装使用步骤是?有哪几大特性?
- 聊聊你对Vue.js的template编译的理解?
- Vue 路由跳转的几种方式
- Vue如何实现按需加载配合webpack设置?
- Vue的路由实现:hash模式和history模式
- Vue与Angular以及React的区别?
- Vue路由的钩子函数
- 什么是Vue的计算属性?
- …
React
- 介绍一下react
- React单项数据流
- react生命周期函数和react组件的生命周期
- react和Vue的原理,区别,亮点,作用
- reactJs的组件交流
- 有了解过react的虚拟DOM吗,虚拟DOM是怎么对比的呢
- 项目里用到了react,为什么要选择react,react有哪些好处
- 怎么获取真正的dom
- 选择react的原因
- react的生命周期函数
- setState之后的流程
- react高阶组件知道吗?
- React的jsx,函数式编程
- react的组件是通过什么去判断是否刷新的
- 如何配置React-Router
- 路由的动态加载模块
- Redux中间件是什么东西,接受几个参数
- redux请求中间件如何处理并发
浏览器
- 跨标签页通讯
- 浏览器架构
- 浏览器下事件循环(Event Loop)
- 从输入 url 到展示的过程
- 重绘与回流
- 存储
- Web Worker
- V8垃圾回收机制
- 内存泄露
- reflow(回流)和repaint(重绘)优化
- 如何减少重绘和回流?
- 一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?
- localStorage 与 sessionStorage 与cookie的区别总结
- http多路复用
- cookie可设置哪些属性?
- 正向代理和反向代理
- …
服务端与网络
- HTTPS和HTTP的区别
- HTTP版本
- 从输入URL到页面呈现发生了什么?
- HTTP缓存
- 缓存位置
- 强缓存
- 协商缓存
- 缓存的资源在那里
- 用户行为对浏览器缓存的影响
- 缓存的优点
- 不同刷新的请求执行过程
- 为什么会有跨域问题
- 如何解决跨域
- 访问控制场景(简单请求与非简单请求)
- withCredentials 属性
- 服务器如何设置CORS
- URL类中的常用方法
算法与数据结构
- 二叉树层序遍历
- B树的特性,B树和B+树的区别
- 尾递归
- 如何写一个大数阶乘?递归的方法会出现什么问题?
- 把多维数组变成一维数组的方法
- 说一下冒泡快排的原理
- Heap排序方法的原理?复杂度?
- 几种常见的排序算法,手写
- 数组的去重,尽可能写出多个方法
- 如果有一个大的数组,都是整型,怎么找出最大的前10个数
由于篇幅有限,只能分享部分面试题,完整版面试题及答案可以【点击我】阅读下载哦~无偿分享给大家
六、前端实习面试的套路
1. 回顾项目
往往在面试时,面试官根据你简历中的项目由点及面地展开问答,所以请对你做过的最好的项目进行回顾和反思。回顾你做过的工作和项目中最复杂的部分,反思你是如何完成这个最复杂的部分的。
面试官会重点问你最复杂的部分的实现方法和如何优化。重点要思考如何优化,即使你项目中没有对那部分进行优化,你也应该预先思考有什么优化的方案。如果这部分答好了,会给面试官留下很不错的印象。
2. 重点在于基础知识
这里指的基础知识包括:前端基础知识和学科基础知识。 前端基础知识:html/css/js 的核心知识,其中 js 的核心知识尤为重要。比如执行上下文、变量对象/活动对象(VO/AO)、作用域链、this 指向、原型链等。
学科基础知识:数据结构、计算机网络、算法等知识。你可能会想前端不需要算法,那你可能就错了,在大公司面试,面试官同样会看重学生这些学科基础知识。
如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。如果你没有使用过框架,那也不需要太担心,把重点放在基础知识和学科基础知识之上,有其余精力的话可以去看看主流框架的核心思想。