字节跳动前端实习(已拿offer)面经?我的复习过程分享
为什么要写这个面经?
- 刚开始准备找实习的时候就一直在看牛客网大家的帖子
- 想着以后过了必须也来写一个,报一下恩,希望对大家有帮助
其实严格来说面试的很多题具体我记不太清楚,但是我可以给大家说下大概的版块以及我准备的一些东西吧 (所以我在标题加了个问号哈哈哈
准备过程
- 把牛客关于前端的一些面经都看一遍
- 边看边记录一下
- 这道题是属于哪方面
- 记住题型,以后看到类似的题联想一下
- 把收集到的知识分门别类做成一张思维导图
- 不得不承认思维导图真的很很很有用!!
- 收集到一定程度就可以开始查漏补缺了
- 每一个知识点去MDN、掘金等找相关技术文章
- 另外用软件做详细的笔记
- 思维导图记录一下大致的思路,过程等,不用太过详细
- 但你得做到看到思维导图就知道这个知识的前因后果
这里我准备了一下我总结的面试的几个方面
关于面试
- 这里我就不单独把一个个问题拿出来说了
- 因为我就面了字节以及腾讯,我把问的多的拿出来,大家品一品
1. 我被问的最多的应该就是HTTP和HTTPS的区别了
- 整个流程以及运用到的相关技术
- 明确HTTP与HTTPS的区别
2. 再就是HTTP相关的知识
- 这个真的是每次面试必问
- 我强烈建议大家花一个下午的时间好好整理
- 包括但不仅限于
- 从HTTP0.9 到HTTP3的发展过程,每个版本是如何改进的
- HTTP缓存的完善过程
- 从Expire到max-age,从last-modified到e-tag
- 涉及到的强制缓存以及协商缓存
- 每个部分的相互联系
- 与状态码的联系
- 与XSS和CSRF的联系
- 与浏览器存储的联系
虽然这一块知识比较多,但是与其他版块之间的联系很紧密,而且不是很深,应该比较好掌握
3. 网络安全XSS和CSRF
- 这个问的也比较多
- 与面试官谈一谈这个东西是什么,举一个例子,如何解决他
- 我感觉主要是需要有一个全面的认识,另外也很重要的是与cookie,token的联系很重要
4. 框架相关
- 因为我暂时只学了Vue,问的都是Vue相关的
- Vue的响应式原理
- 这个我看了很久,最开始一脸懵逼,去看官网的教程,看文章,看视频讲解
- 后面去看了youtube的一个关于vue响应式原理的讲座,启发很大
- 大致了解一下这几个点吧
- get/set劫持
- 订阅发布模式
- 数组?解决方法?
- Vue3的Proxy
- 然后Vue的基础问的其实不太多,毕竟比较简单
- 推荐有时间去把Vue官方文档过一遍
- 我花了两三天时间,从早到晚,一页一页把文档阅读一遍也做了笔记(虽然是相当于抄了一遍
- 但是真的很有帮助,以前做项目遇到的一些问题也知道了为什么
- 其实关于框架我建议和自己做的项目一起谈
- 把你在项目中遇到的关于框架的问题以及如何使用框架的过程谈一谈比较好
5. JS基础部分(重点:跨域!
- JS的基础部分算是老生常谈的东西了
- 闭包,事件循环,跨域,this,深拷贝浅拷贝,new,事件流/委托,AJAX...
- 跨域是问的最最最多的了,不管字节还是腾讯,问的都很多
- 我强烈建议把CORS,JSONP(手写),window.name,iframe,postMessage学一下
- 前两个很重要:特别是CORS涉及的知识点很多关于HTTP,所以说HTTP真的很重要
- 然后就是一些手写实现xxx,这些网上都有,过一下背一下理解一下是怎么实现的
小小的总结一下
1. 这段时间的复习以来
- 我越学到后面越发现很多知识不是片面的,是相互之间有千丝万缕的联系的,所以大家在做思维导图的时候可以试着把每个知识点涉及到的其他部分连线,区分联系起来。
2. 代码题需要大家脑子清楚,思路清晰。
- 其实这方面我算比较弱的,我的算法和数据结构很差,而且这是一时半会补不回来的
- 所以我建议大家尽量自己去做一下别人发的面经的代码题,自己去做,把思路明确清晰起来,做到一定程度就会有感觉了。(我相信很多人都懂)
3. 最后我总结下来几个字就是:分版块、要深入、找联系、成系统。
PS.思维导图大家有兴趣来我的github拿吧~别回复邮箱了被警告了😿
https://github.com/enoshima7/Memo