我在准备面试时,整理的一些知识点:
手写代码题:github
前端面试之JavaScript篇
前端面试之ES6篇
前端面试之HTML&CSS篇
前端面试之网络篇
前端面试之浏览器篇
前端面试之webpack篇
前端面试之vue篇
前端面试之性能优化篇
下面是面经~
一面(1h)
一面是在腾讯会议上进行的电话面试。面试官是一个温柔的小姐姐。主要流程就是自我介绍+基础知识问答+手写代码。
自我介绍就不用说了,就说一些自己的基本情况还有在学校做过的项目。
离一面也有点久了,我就记一下还记得的问答。不过可以肯定的是基本所有的问题都在我总结的面试知识点之内(因为我面试后都有补充)。
- 看过哪些前端的书籍,我说了《高程》《你不知道的JavaScript上中下》还有《图解HTTP》,然后被问了HTTPS建立通信的过程
- css有哪些单位
- 讲一下css的flex布局
- js的原型和原型链,原型链的终点在哪里?
- es5、es6继承
- 讲一下js的事件委托
- 什么是闭包?闭包有哪些使用场景?
- 浏览器的缓存机制
- 浏览器的渲染原理
- 回流和重绘
- 跨域问题以及解决方案
- XSS和CSRF,解决方案
- vue数据双向绑定的原理,数组中的元素更新是怎么实现的呢?
- 关于node
- 手写代码题:找出字符串中出现次数最多的字符及出现次数
- 有什么要问我的吗(问了一下前端的发展问题)
二面(1.5h)
二面是在牛客上进行的视频面试。面试官同样很和蔼。这一面就问的比较深了。讲项目这块就不说了,因人而异。我在讲的一个项目中,负责前端部分,然后被问了后端大概是怎么实现的(就是如果我写后端,会怎么实现),还问到了数据库的左右连接。
下面是被问到的题:
- 尽可能详细的说明从输入url到回车这个过程中发生了什么
- 如果要加载一个很大的图怎么办,后来get到面试官想问的其实是前端要加载一个图片有哪些方式,然后还问到了base64是怎么实现的,有什么缺点,icon是怎么实现的
- px和rem的区别,举个例子说明一下
- js事件委托
- 讲一下你知道的前端性能优化方式
- 用vue和react哪个多一点(vue)。说一下vue数据双向绑定的原理
- 先出了一个深拷贝的题,问会输出什么,然后手写一个深拷贝
- 从一个数组的后十个数中找出3个和为10的数字,说一下解决方案。刚开始说了个三层循环的,然后让优化一下,利用对象优化到了两层
- 有什么要问我的吗(问了一下前端之间分工协作的问题)
三面面试官人也很好,在面了大概1h10min的技术后,就开始聊一些有关实习和学校的事情。
三面(0.5h)
三面是在腾讯会议上的电话面试。三面面试官同样很nice!
一开始也是聊项目。然后就是出各种情景题,然后聊解决方案。
比如:
- 后端一下子给你几万条数据,你要怎么处理。一开始我说,这种情况下后端一定会分页的,然后又问没分页怎么办。然后我说前端手动分页,然后讲了一下具体的实现方法。
- 有一个高频触发的请求,你会怎么处理,这个饶了好久,一开始没get到面试官的点,一开始谈到了节流和防抖,然后面试官说这样会影响用户体验,而且这个需求就是需要高频触发,然后又说了一下需要高频请求的场景,一开始说到表单,然后说到购物车抢购。然后我又说加个16位随机字符串的参数,然后面试官说这样只是可以区分请求,在网络传输过程中,请求不一定是按先后顺序到达服务器的,那么服务器怎么知道请求的先后顺序呢,其实答案很简单,就是加个时间戳参数。不过当时一下子没反应过来,还谈到了域名发散,面试官说太复杂,然后才谈到加表明各个请求之间关系的参数。
- 你有什么想问我的吗(问了一下腾讯招实习生的时候最看重的是实习生的哪些能力)
最后就聊了一下实习时间还有为什么学前端,我大概说了一下,然后面试官说女生喜欢做好看的东西。我觉得总结的很对哈哈。