背景
本人从事web前端开发,断断续续准备几个月,由毕业起在一家非互联网公司工作,用过Vue技术栈,React技术栈,微信小程序来开发。本次尝试跳槽是想看看目前我自己能达到什么水平,期望去大厂。另一个也是想要更高的收入。由于受新冠病毒疫情影响,近两个月的面试都是主要以电话面试和视频面试,其中有也有面试过中大厂。总结出来的体会是自己还不够格去大厂,大厂的面试都十分注重基础,会深入考察基础的底层知识和由此拓展出来的场景。(如promise与async await的区别,怎么结合async await来使用ajax等),还有框架的原理。另一个是大厂会比较注重项目经验,起码要有性能优化相关经验,搭过前端环境,项目有一定的复杂度。技术面也要更加广泛,如对前沿技术的了解。
记忆比较深刻的面试题
框架方面(Vue,React)
- Vue的双向绑定原理是什么?
- Vue中watch与computed属性有什么区别?
- 了解Vue-next吗?
- Vue和React的区别?
- React关于hooks的了解?与class的写法有什么区别?两者是怎么体现其生命周期?
- React16之后有什么变化?(生命周期的改变)
- setState是异步还是同步?
- 虚拟dom跟真实dom的区别是什么呢?实际上没有那么快?那有什么区别呢?
webpack框架方面
- webpack本质上做到了什么?(模块化)
- webpack执行的原理是什么?
- webpack在构建和渲染上有什么优化方案?
- babel设置的plugin和presets的区别是什么?执行的优先级哪个更高?
- babel设置有了presets后,为什么还需要plguins?
- happypack的使用带来什么影响呢?实际上可能是没有影响的?
性能优化
- 重绘跟重排的区别是什么?
- 假设for循环一万次,会有多少次重绘和重排呢?如果加上获取其中的高度会有什么区别?
- chrome的调试工具有哪些?(debugger source模块下各用法)
其他
总结
总的来说,大厂的要求会更加高,十分考察基础和项目。也通过这几次面试知道自己的差距,接下来要做的就是扎实基础,做复杂度高一点的项目,深入了解业务,并且要熟悉用后台语言(Node等)。写下这次面试心得,愿能帮助其他web前端开发,并勉励自己多学习多摸索。