一面
自我介绍
常规问题
- 家是哪儿的,然后面试官介绍了一下base,问能不能来深圳
- 拿了什么offer
- 还有面腾讯其他的岗位吗
- 本科学过什么课程
- 研究生学过什么课程
- 怎么学习前端的?学习前端的方法是什么
项目问题
- 说一下两个项目对你来说挑战更大的
- 其中有什么难点
- 其中说到了利用performance监控,那么其中的火焰图是什么?火焰图的y轴是什么,x轴是什么?
技术问题
-
单例模式的实现原理是什么?手写一个?
-
写一个闭包吧,不用实现功能的那种。
说一下闭包的概念 -
说一下输入URL到页面显示的过程,越详细越好
-
手写JS的继承
原型、构造、组合、ES6等等几种我都写了……这个大家百度一下就有,这种题目尽可能要写全 -
说一下宏任务和微任务有什么区别
-
那么promise和setTimeout会谁先执行
-
说一下promise的原生实现
-
你做过后台是吧,(对,写过一些)那么说一下是怎么保持登陆态的
-
那么其中token这种方***有什么问题呢?(回答了xss和csrf,其中提到了验证码来解决csrf)
-
除了验证码,还有什么好的方式呢?(提到了cookie的same-site属性和refer头)
-
这个same-site你确定是有用的吗?
-
refer是一定有效的吗?有没有可能被篡改?
-
xss一般会过滤什么?(尖括号、斜杠)
-
为什么要过滤尖括号?(可以插入脚本,如)
-
这两个字符串有什么不同?
12let a ='123';let b =newString(); -
写一个节流函数。
-
说一下垂直居中的方式?父元素和子元素宽度都不一定。
垂直居中有十种方法左右,建议都可以了解一下……虽然我平时开发也只用flex -
说一下vue双向绑定实现的原理
-
手写一个二分查找
-
手写一个快速排序
解释一下原理
二面
自我介绍
项目
- 实习做的B端项目相对来说难度也没有很高,你在这段实习经历中主要学习到了什么?
1、去理解比较复杂的业务逻辑
2、大型项目中平衡组件化开发和后续迭代
3、组件封装
4、优化和其他小的难度需求 - 提升速度的具体数据是什么?
- 有去做页面打开时加载速度的优化吗?(回答C端做过)
- 怎么去做这种优化?
- 这些是本地的优化数据,怎么去监测线上用户的打开时间等数据呢?
- 在实习过程中,你觉得在开发流程上有什么可以优化的以及你做了些什么优化?
- 你写过原生的内核吗?
- 你知道这种小程序编译框架的原理吗?
- 你知道主流框架的区别吗?
- 写过ts吗?
- 微软的vs有一个叫依赖注入的,对这个怎么理解的?
- es6了解过吗?模块化是怎么实现的?怎么做到变量名之间互不干扰就是模块之间如何保证互不影响,模块化是怎么做到的?
- 主技术栈是什么?
- 用过react吗
- react和vue有什么区别
- react如果更新上级节点,所有子级节点都会更新,要怎么去处理?
- 对web性能安全有什么了解吗?(主要说了xss和csrf)
- 我们如果有一个奖励的系统,有一个用户通过第三方疯狂调用我们的接口我们该怎么做?
- 验证码有哪些格式?
- 还有什么别的方法吗?
- 这些都是可以伪造的,有什么别的方法吗?
- 设计模式用过吗?最熟悉的模式是什么?
- 说一下单例模式。
- 说一下订阅发布模式。
code题
- 题目:
我们进行了一次黑客马拉松大赛,
全公司一共分为了N个组,
每组一个房间排成一排开始比赛,
比赛结束后没有公布成绩,
但是每个组能够看到自己相邻的两个组里比自己成绩低的组的成绩,
比赛结束之后要发奖金,以1w为单位,每个组都至少会发1w的奖金,
另外,如果一个组发现自己的奖金没有高于比自己成绩低的组发的奖金,
就会不满意,作为比赛的组织方,根据成绩计算出至少需要发多少奖金才能让所有的组满意。
这一面项目挖得比较多,创新扩展比较多,所以很多不太通用就没有分享啦~
三面
自我介绍
项目
- 深挖实习经历的项目和所学
- 说一下做业务时的开发流程?以及其中从工程和技术方面你有什么可以优化的建议?
- 你说的这些我很赞同,但主要是工程方面,在技术方面呢?比如技术选型和调研,提升开发效率,有什么好的建议吗?比如你做业务中台,其中有一些是重复的工作,那么有什么可以去提升开发效率的事情呢?在技术选型上更多地会去考虑什么呢?
- 你们现在前后端是分离开发的吗?
- 了解过无代码编程这个概念吗?如果是你的话会怎么去运用这个?
- 看你做的内部产品比较多,c端的性能优化做过什么呢?
- 那么要如何去检测线上的用户性能呢?你觉得其中有哪些数据是比较重要的呢?怎么去实现对他们的监测和分析呢?
- 其中你提到了window.onError来监测线上的数据,那么是怎么做的呢?比如由于浏览器的同源策略,我们是不能获取到真实的代码位置和数据的。这些应该怎么做呢?
- 你有自己去实现过吗?怎么去定位线上用户的问题在哪里呢?
- 说一下小程序为什么比h5更好呢?(然后深挖了很多底层实现)
基础
- http2相对于http1的改进是什么?
- 那我们如果要把http1换成http2,我们网站需要做一些什么工作呢?
- 说一下https为什么比http更安全?
- 为什么要采用非对称加密和对称加密?
- 主技术栈是vue,用过别的吗?(用过react)
- 那么从你的角度说一下vue和react的区别?
- 说一下从底层原理的实现的区别呢?比如你提到了vue的双向绑定,这是怎么实现呢?
- http3和http2的区别是什么?
- 浏览器缓存在性能优化里也是比较重要的一部分,说一下浏览器缓存吧。
- 那么Etag的作用是什么呢?
- 后端是怎么设置Etag的呢?
- 做过富文本编辑器吗?
- 如果让你来做一个富文本编辑器,你觉得主要用了浏览器的什么功能?
- 用过canvas吗?
- 如果让你来做动画,嵌入到我们的网站里,你会有什么方法?
总结
- 本科和研究生的绩点?排名是多少?
- 家在哪里,可以来深圳吗?
- 大学学的最好的课程是什么?
这个也是大佬中的大佬~面的很愉快,把比较通用的都分享出来了。
四面
这个是我秋招最后一场技术面了……好像是周末晚上十点多突袭的,也是一个一个多小时的纯技术面,我面完真的困了就没有整理了……非常广泛什么都问,项目挖掘得很深,基础知识下到编译原理操作系统上到各种算法、设计模式、性能优化等……当时我面的都哆嗦了……大佬就是大佬不得不感慨
hr面
超温柔小姐姐!~
结果
8.6开始约面试,8月底完成面试,9月中上旬发意向书。
全部评论
(3) 回帖