网易,腾讯,阿里前端面筋
背景:广东某本,前端学了一年左右
从二月底开始投简历,陆陆续续投了二十多家,最后只面了三家,有些是简历被筛了,有些是笔试挂了,有些是石沉大海,还有一些是因为太晚不想面拒掉了,最后只面了阿里,网易,腾讯这三家,网易,腾讯都拿offer了,阿里面完hr面后没消息了,不过也不咋重要,因为自己本来也不想出省,下面就发一下面筋,因为太久了很多都忘了,将就看。
淘系前端一面(1h)
阿里拍卖一面(50min)
阿里钉钉一面(45min)
- 说下项目中的难点
- 说下diff算法
- 做的项目优化
- HTTP,HTTPS,websocket的区别
- SSR
- SSR的具体用法
- SSR怎么保证客户端和服务端的数据同步
- 用SSR遇到过什么难题
- 为什么使用redis
- 闭包
- 原型链
- 阿里伯乐做了个版本号比较问题
应该还有其他的,不过我忘了,问的都不是太难
阿里钉钉二面(40min)
- 自我介绍
- 讲项目
- 什么专业,学过什么课程
- 讲讲三次握手四次挥手
- 三次握手发生在内核态还是用户态
- 内核态和用户态的区别
- 电信号在网络中怎么传输的
- 模拟信号和数字信号的区别
- 描述拨号上网到前端页面显示的整个过程,越详细越好
- 垂直水平居中的多种方法
- 说下异步
- 说下generater和yield
- generater的本质是什么,或者说下generater执行时操作系统中发生了什么(不知道是不是想问进程协作啥的,我也不太了解)
阿里钉钉三面(30min)
- 学过哪些基础课程
- 操作系统本质是什么
- 你觉得操作系统这门课在讲什么
- 说说数据库的索引
- 数据库事务是什么,有什么特性
- 有没有自己设计过数据库表(实践不多,说了下学校的数据库课设)
- 用过哪些数据结构
- 说说你了解的树有哪些,B+树了解吗
- 平衡二叉树是什么,你觉得它有什么优点,应用场景在哪
- 讲一下网络请求到渲染的全过程
- 重排和重绘
- 对MVVC的理解,有什么好处,除了MVVC还了解过其他模式吗
- 软件工程和设计模式有什么区别,说说几个了解的设计模式
微信开放平台一面(40min)
- 自我介绍
- 讲项目
- 说说ES6的一些新特性
- 如何实现一个web端的JS断点调试功能
- vue的优缺点
- web缓存
- web安全
- 讲讲https
- 写代码:1.leetcode670;2.实现一个JSON.stringfy(),要支持循环引用,并记录循环引用的路径
这一面感觉面试官对我没啥兴趣,最后算法题也没全A,不出意料的挂了
网易有道一面(50min)
- 自我介绍
- 介绍项目
- 说说项目做过的一些优化
- 你觉得webpack 是干什么的,为什么需要webpack
- webapck的loader和plugin有什么区别
- ES6学了哪些
- 搞了个作用域的题目,具体忘记了
- 跨域知道哪些,详细说说
- CSS写得多还是JS写得多
- 两个div,父元素移入子元素,子元素样式发生变化,共享屏幕写代码
- mouesemove,mouseleave,mouseup等等几个API的区别
- 哪些方法不能冒泡
- 纯CSS解决上面那个问题
- 伪类和伪元素的区别,都分别有哪些
- 在浏览器渲染层面上面两者有什么区别
- 为什么用SSR
- SSR用什么做的
- ssr处理数据和SPA有什么区别
- 为什么用redis
- 反问
网易有道二面(35min)
- 人在广州?
- 直接项目展开,问了很多发散性问题,比如下面几个
- 如果浏览器进程突然奔溃,纯前端怎么保证数据的安全(定时存储到localstorage)
- 数据传输过程有无做压缩
- 为什么要使用websocket,解决了什么问题
- http缓存
- http状态码
- SSR怎么保证数据的同步
- 使用SSR有无遇到什么坑
- 多页应用怎么打包
- 说下webpack的预渲染怎么做的
- 拆包是用什么方式
- 你这种方案第一次渲染时间会比较久,有什么方法让首次渲染更快吗
- 等等。。。。
这一面参考性不大,基本都是围绕项目在讲,面完下午hr打电话随便聊聊说口头过了,第二天就发了offer
腾讯CDG一面(1h40min)
- 没让自我介绍,直接问你是广工的?我们这边也有不少同事是广工的,我上一个面试的同学也是广工的,balabala,魔幻开局
- 让我详细讲讲项目,讲了比较久
- 详细讲讲性能优化,分几个方面讲,也讲了比较久
- web缓存有几种,分别说下
- 你说了性能优化,那你有了解过webpack里面的拆包吗,说一下你的拆包策略
- 你觉得拆包的意义在哪,结合http的缓存详细说下拆包
- 拆包过程有遇到过什么坑吗,如何解决的(有个webpack的bundle和module的id自增导致缓存失效的问题)
- 上面两个讲完差不多都五十分钟了,接着问问题
- 为什么项目选用vue,如果要把项目迁移到React怎么办
- 为什么要使用vuex
- 如果要复用项目中的某一块逻辑,你怎么做,我答的是mixin,后面面试官说了其他方法
- 用过nginx吗,说说干嘛的
- 如果我从前端要请求一张图片,你觉得从前端到后端的整个流程是怎样的,详细讲讲在后端的处理流程,随便扯了点路由匹配啥的
- 共享屏幕搞了几道题:1.说说几种实现数组去重的方法
- 2.给了一个代码片段,大概就是一个产生随机数的for循环,然后把这个随机数当作参数传到一个异步函数,问怎么保证输出顺序也是有序的,其实就是类似于同时发送几个http请求,怎么保证响应顺序也按照请求顺序依次返回
- 看你有写过一些偏后端的应用,说说你了解后端的哪些知识
- koa的洋葱模型,和express有什么区别
- 说说不用nuxt框架怎么实现SSR,数据预取怎么实现的
- 微信为什么会挂掉,说说那两道笔试题的题目和你的解法
- 平时怎么学习的,学前端多久了
- 如何学习一个新的知识
- 你在学校的实验室名称是什么,学校有哪些实验室比较出名,推荐点实验室的同学来面试
只记得这些了,应该还有其他的,面试过程评价都比较正面,面完就直接口头给过了
腾讯CDG二面(30min)
- 自我介绍,我上个刚面的也是广工的同学,你认识他吗(为啥每个面试官都喜欢问这个,我咋认识)
- 高并发场景下前端的优化方案
- 前端安全了解哪些
- 说下快速排序的思想
- 写CSS喜欢用什么布局
- 几种垂直水平居中的方案
- 浮动布局和flex布局相比有什么优缺点
- 三栏布局有哪些写法
- BFC
- 做过移动端吗
- 了解PWA吗,webpack怎么做PWA
- 知道什么最新的前端技术没,跨端开发如何做
- 讲讲http
- 说下几个常用的状态码
- 讲讲事件循环是什么东西
- 在QQ丢了个移动端的小项目给我做,让我做完第二天接着面
- (第二天来了),问一些实现,主要还是偏向CSS的,然后说我的实现没亮点,没注意语义化什么鬼的
这一面主要是偏向CSS的考察吧,可能是因为一面没考CSS的原因,面完也是口头给过了
腾讯CDG三面(35min)
- 自我介绍
- 前两轮面试觉得自己在哪些方面表现不好,分别说说
- 三次握手四次挥手
- web安全
- 讲讲https的握手过程
- https为什么会出现,https一定安全吗
- 用过websocket吗,websocket是哪一层的协议
- 详细说说websocket的各个方面(可以讲讲升级握手过程,什么类型的通信,优缺点,传输格式啥的)
- 有看源码的习惯没,看过哪些源码
- 说说vue源码印象比较深刻的地方
- 说说koa的源码
- 为什么要学前端
- 你觉得前端的发展路线是怎样的,各个阶段分别需要掌握哪些技术,你觉得自己处于哪个阶段
- 反问
阿里钉钉四面(40min)
- 自我介绍
- vue和react的区别
- 事件循环
- 浏览器渲染过程
- html解析具体过程
- 详细讲讲项目
- 介绍vuex的各个模块和简单讲讲原理
- 虚拟dom存在的意义
- vue里面的key有什么作用
- 在海量字符串中统计处出现频率最高的单词,有什么思路
只记得这些,项目讲解占了一半时间,基础问的不怎么多,也比较简单
腾讯CDG四面(40min)
- 自我介绍
- 讲项目
- 你在项目中是什么角色,了解项目的后台架构吗
- 说说你在项目中做过的性能优化
- CDN的原理是什么
- Linux常用指令
- 说说前端工程化
- 除了你简历上写的这些,你还在什么技术上深入研究过没吗
还有不少忘记了,四面是通道面,类似阿里的交叉面,问的都是大方向上的问题,看你回答的深度怎么样
阿里钉钉HR面(19min)
- 学校是211吗
- 在学校的成绩怎么样,拿过奖学金吗
- 高考分数多少
- 父母是干嘛的
- 说一下学校的经历
- 遇到过的挫折感最大的事情
- 最自豪的一件事
- 坚持最久的事
- 坚持的事情有无和其他事发生过冲突,怎么解决的
- 和其他人合作过程发生冲突怎么解决
- 如果让你领导项目一个复杂模块的开发,怎么去做
- 好像没了
腾讯HR面(26min)
- 自我介绍
- 人在广州?
- 校园经历,当过班干部没
- 说下团队的规模,在团队的角色
- 说下团队的协作流程
- 觉得自己技术怎么样
- 参加过什么比赛,拿过什么奖
- 你学过JAVA吗,你对JAVA熟悉吗
- 什么时候开始用GitHub,更新频率怎么样
- 介绍了下部门,好像就没了
差不多就这些了,相当于给自己做个总结吧,从小白摸爬滚打成为了一名菜鸟,技术的学习不能停止,对我而言,总的来看前端基础问的倒是不怎么多,大部分时间可能是问计算机基础和项目,我在学校做的项目还OK,能磨掉不少时间,需要注意的是项目自己要包装一下,我刚开始投简历的时候被淘系的面试官说过项目比较单薄,然后重新深入挖掘了下,反而项目成了后面面试中的一个亮点,很多人被问到项目亮点或者难点的时候不知道怎么说,这个其实可以结合你学过的基础知识来讲,比如项目某个地方用到了某种设计模式,达到了什么效果,或者用到了某种数据结构或算法,或者是写了什么webpack插件来辅助项目开发,又或者是遇到了某些性能问题,排查之后怎么去解决,等等这些都可以去讲,如果这些都没有,可以强行加上一些通用问题,比如长列表优化,列表基本上每个人的项目上都有,可以去网上看看常见的长列表优化方案,为什么要优化,怎么去优化,优化有哪些方案,每个方案的优略,优化之后带来的成果等等。总的来说就是至少让自己有一个值得面试官留意的点,背前端的基础知识可能比较难和其他同学拉开距离,因为基础知识比较简单,基本都是必备技能,在这个基础上,要让自己有些与众不同的点,比如技术栈广泛;对某个方面研究深入;项目经验比较丰富或者复杂;逻辑思维比较活跃;审视问题角度新奇等等,这些都可以成为让人印象深刻的点,具体到每个人都不太相同,就说这么多,祝大家求职顺利!
#面经##前端##面试题目##阿里巴巴##腾讯##网易##前端工程师#