笔试(四题,60min)
- 三道算法题和一道编程题,都是js题,要求不能借助第三方库,必须原生js手撕
一面(电话面试,34min)
- var、let、const的区别
- js中判断变量类型的方法有哪些
- 追问:如何判断变量是null类型
- 谈谈this指向问题,改变this指向的方法以及区别
- 谈谈对箭头函数的了解
- canvas的一些图像操作为什么对图片有跨域限制
- 对于首屏加载的优化有哪些
- 组件懒加载实现原理
- 用过哪些页面性能分析工具
- 谈谈移动端混合开发与原生App的区别,有什么优缺点
- 针对简历中的项目经验提问
- 介绍大四实习情况,对实习公司的技术栈的看法
二面(电话面试,70min)
- 谈谈对JS的理解
- 原型链的概念,obj.prototype.a=1,obj.prototype.b=[],对于obj的实例obj1以及obj2,修改obj1.a=2的值,obj2.a的值为多少?调用obj1.b.push(1),obj2.b的值为多少?
- 谈谈对http2.0的理解
- 谈谈对闭包的理解以及闭包的作用
- 介绍JS的事件机制
- 追问:事件冒泡的应用场景
- 追问:自定义事件的实现
- ajax跨域的解决方法
- 追问:JSONP的实现原理
- 是否研究过框架源码
- 追问:Redux的实现原理
- 如何实现多页面数据共享
- 追问:如何实现不同域名下的多页面数据共享
- 追问:如何用localStorage实现不同域名下的多页面数据共享
- 在实习的公司有什么突出的表现,与同事意见突出如何解决,是否在项目开发中提出自己的想法
- 是否了解实习公司为什么选择React而不选择Vue,出于哪方面的考虑
- 介绍个人开源项目(简历上提到)的实现原理,应用场景,优化方案
三面(电话面试,36min)
- 是否考虑过考研
- 有什么兴趣爱好
- 是否对框架源码有研究
- 分析Axios源码实现
- React与Vue框架比较
- React虚拟DOM实现原理
- Scheme深度链接实现原理
- JSBridge实现原理
- 对哪个项目印象深刻,说一下项目的难点
- 介绍自己的开源项目
- 谈谈实习公司的技术栈以及开发过程中存在什么问题,是否提出过自己的看法,是否着手解决
- 100个红球和100个蓝球,放在两个箱子里,只能拿一个球,怎么让红球拿到的概率更大
- 动态规划的应用场景
HR面(视频面试,11min)
- 简单聊了上一家公司实习经历,个人情况等,结束时告知面试通过😁
由于没及时整理问题,有些面试问题已经遗忘,技术面整体偏重于基础,知识的广度,以及对框架源码的了解,整个面试流程将近一个月,有惊无险😃