【秋招提前批必看哦】多次被拒后的前端面试题总结
从四月份开始准备春招实习面试,刚开始准备的时候真的是毫无头绪,前端涉及的方面很多,除了最基础的JavaScript、HTML、CSS,还有两个现今大火的框架React和Vue,以及浏览器的渲染原理和支持其与服务器通信的网络原理,这些都是前端技术中最最基础的部分。虽然在这之前已经完成过六七个前端项目,但会写并不代表掌握,相反的,大三的我在这些基础知识方面超级薄弱,2个月面试的过程就是从前端小小白变成前端新手的过程。虽然当时面的3家国内大厂都被拒了,最后去了一家外企(不过外企真舒服呀~),但是经过这么多次面试,收获还是非常大的。
🤪现在我已经研一啦,这次春招我从寒假就开始准备,把大三时记录的面试问题整理了起来,趁着这次机会对这些前端面试问题做了一个归纳总结。当自己在脑中建立起这个前端知识体系之后,会觉得面试其实也没那么困难,建议大家在面试前也可以自己做一个思维图谱,看看自己哪些方面是需要查缺补漏的。
目录
1. JavaScript
2. HTML
3. CSS
4. 浏览器原理/计算机网络/前端优化
5. 前端框架
6. 代码题
7. 其他
2. HTML
3. CSS
4. 浏览器原理/计算机网络/前端优化
5. 前端框架
6. 代码题
7. 其他
JavaScript
一个合格的前端开发者,必须是一个合格的JavaScript Coder,因此每一个面试官都会重点考核我们的JavaScript代码能力。从最底层的内存分配、事件循环原理,到具体函数的使用方式、使用JavaScript解决实际问题,都要牢牢掌握!比如说原型链的解释和应用,我一共在面试中遇到过4次,几率大概是80%,因为这个知识点理解起来稍有难度且在实践中应用的机会不多,比较能体现被面试者的水平。想要对JavaScript有全面并且深入了解的旁友,推荐一下《JavaScript权威指南》这本书,我也正在啃(:з」∠)
(以上表格中的三列分别表示:知识点分类 -- 知识点 -- 出现频次,后图均使用此格式)
HTML
HTML的全称是HyperText Makeup Language,作为一种展示性的语言,它没有什么逻辑性。因此在面试中问到的概率比较小,HTML5的新特性算是一个重点,其中的Canvas和Svg在实际应用中经常被用到,HTML语义化也是一个有趣的新扩展。
CSS
CSS层叠样式表是学习前端的过程中最容易忽略,也是最容易出错的部分。它涉及到前端界面最重要的——布局,BFC、IFC、Flex-box等等都是布局中的重要概念,如果你不知道这些,你也完全可以写出一个系统,但你写出的css很可能不是最简洁、最直观、最优美的代码。
与CSS相关的面试题中,我遇到的最多的一个是实现垂直水平居中:这个题目除了考察我对弹性盒子模型(Flex-box)的理解,面试官更想听到一些其他的解决方案(网上可以搜到好多答案,建议大家都回去试试),有一次面试我已经说了4种实现方式了面试官还在问我有没有别的方案;另一个经常碰到的题目是实现左栏定宽右栏自适应布局,最简单的方式也是使用Flex-box,当然也有用display:table的各种骚操作。在面试某A公司的时候,被问到有关rem的概念以及它和px的关系,这个涉及到移动端适配,我之前完全没有接触过,面完过后了解了一下,发现还是蛮有趣的( ・᷄ὢ・᷅ )
浏览器原理/计算机网络/前端优化
浏览器原理和计算机网络这两个方面,是面试中必问的部分,所以它的题库还是比较固定的,理解之后稍微理顺语言,就能在面试中回答得很好了。浏览器从输入网址到渲染页面经过的过程这个问题,在听到三四次之后我已经内心os:为啥又是这个问题,能不能有点新意(不是……)
除此之外,面试官也会结合做过的项目,问一下有没有对前端做过优化。这个嘛,相信我们在做学校的作业项目的时候,很少会想到要优化前端性能,因为数据量真的很小。前端优化最终的目的还是要提高界面流畅度,减少加载时间,所以预加载、懒加载、利用浏览器缓存都是优化前端的方式。把自己的优化思路和面试官说一说,也是能拿下这部分的。
前端框架
对于前端框架,面试官的重点会放在你对它原理的理解,以及你的选型思路。这部分的问题一般会和项目经历结合着问,面试官是不会挑着你不会的框架一直问的。我的面试记录中react-native被问到的频率特别高,是因为我把这个项目放在我项目经历的第一个,面试官就特别喜欢问,并且我每次都回答得不太好……(这说明你的简历是能够从一定程度上主导面试方向的,自己不太了解、或是只简单用过的技术,最好还是不要写在简历里了,容易翻车)
代码题
在前端面试中,代码题的占比并不太大,如果是全程电话面试的话,很可能都不会问到代码题。视频面试时会即时出题在线上IDE里写,题目难度基本都是Leetcode Simple级别,我感觉只要稍微刷过几十道,好好复习一遍数据结构与算法,就没啥问题了。
其他
这边为什么会放一个其他呢,因为这里列出的问题是一些开放性的问题,我觉得这些问题也能反映出面试官心仪的“合格的前端工程师”应该具备的特点:热情、探索、高效学习。
写在最后
在经过大三春招的打磨(挫败)之后,研一的春招顺利拿到了字节、蚂蚁和腾讯的offer,这说明面试的准备真的很很很重要啊!!
现在已经开始字节的实习啦,接下来是一波硬广👇👇👇👇👇【字节跳动教育团队可内推日常实习呀~~】
秋招提前批开始啦
前端/服务端/客户端/测试均可内推~简历直达部门(。ì _ í。)
🉑️提前把简历发我邮箱yangyuqin.222@bytedance.com,提供简历建议~
🉑️实时查流程进度
🉑️提供面试经验分享~
【我的内推码:3FM18X1】