腾讯QQ音乐前端面经(已offer)

腾讯QQ音乐前端面经(已offer)
文章来自:反向人,本文以其第一人称阐述。
本人本科毕业5年,1年后端 + 4年。今年5月面试了一次,历经1个月拿到Offer(的流程实在太长),记录下整个面试过程,需要的可以看下。

一面(电话面)

  1. 自我介绍

2. 为什么想离职?

3. react hooks 有哪些优缺点?

4. useLayoutEffect 和 useEffect 区别是什么?

5. 有接触过哪些移动端跨平台框架?说下jsBridge?

6. 说下react-native的原理,原生端和js端是怎么通信的?

7. flutter有了解过吗?为什么说它的性能可以媲美原生?它有什么缺点吗?

8. 如果一个项目要用移动端跨平台框架开发,你会选择哪个?

9. 工作中遇到过的最难的问题是什么?最后解决了吗?怎么解决的?现在觉得有没有更好的解决方案?

10. 反转单向链表怎么做?需要几个指针?都有什么作用?

11. 你有什么要问我的吗?

二面(现场导师面)

1. 自我介绍

2. 为什么想离职?

3. Vue 和 React的区别是什么?你觉得哪个好?

4. redux主要解决了什么问题?它的工作原理是什么?与mobx的区别是什么?你觉得redux 和 mobx哪个更好?

5. react中state有层级很深,比如a.b.c.d,如果只更新c属性有哪些办法?immutable.js实现的原理是什么?

6. 说下crsf 和 xss,分别举例说明,各有什么解决办法?

7. Cookie的同源策略是怎么样的,跨域情况下如何携带Cookie(这里主要考察了SameSite问题,因为我crsf问题没答到这点)

8. 有用过哪些跨平台框架,react-native中原生端和js端怎么进行通信的?

9. 假设有一个非常复杂耗时的逻辑,代码逻辑已经最优了前提下要你优化,你有哪些办法?(这题其实是考察WebWorker)

10. 说下浏览器的进程、线程模型,chrome浏览器有多少个进程?线程模型中的每个线程都是干嘛用的?

11. 说下 js的内存泄漏,什么情况容易出现内存泄漏?怎么解决?垃圾回收机制是怎么样的?

12. 自己的项目做了哪些性能优化?除了webpack打包之类的优化外,http层面有做了哪些优化?gzip如何开启?gzip有多少个级别?

13. 用二分法移除掉一个字符串中所有的字母字符。

14. 有什么要问我的?

三面(现场组长面)

1. 自我介绍

2. 为什么离职?在之前的公司什么部门?公司的主营业务是什么?

3. 随机生成100w正负整数存储下来,记录时间t1;然后把这100w数据中的负数全去掉,记录时间t2;然后记录总共耗时t3 = t2 - t1。

4. 在耗时t3的基础上优化下,使t4的耗时只有t3的70%; 在t4的耗时基础下再优化,使t5的耗时只有t4的70%...

5. 说一下输入一个url地址后的全过程?dom渲染那块描述过于简单,能否说的更详细点?react中的diff算法的原理?传统的diff算法是怎么实现的?

6. 说出一个react的特性?它的原理是什么?(我答的fiber)

7. 你们的前端项目主要用的是ES版本是多少?说出ES7中的3个性特性并说出应用场景?说出ES8中的三个新特性并说出应用场景?

8. WebWorker有了解过吗?它有什么应用场景?刚刚的算法题可以用这个进行再次优化吗?

9. 为什么说https是安全的?https的证书校验过程是怎么样的?(这里一定要说的非常非常详细)证书校验用到了哪些算法?

10. https一定是安全的吗?(考察https中间人劫持),有什么解决办法?

11. 说出http2中至少三个新特性?你们有在实际中用过吗?

12. 你有什么要问我的吗?

四面(交叉面)

交叉面和一面差不多,这里就不重复了。多问了http缓存机制问题,然后问了一下: 浏览器的默认缓存时间是多久?

五面(总监面)

1. 自我介绍

2. 为什么要离职

3. 要你设计一个前端监控方案,你打算怎么做。

4. 平时喜欢听歌吗?用什么音乐app?(我答的以前用网易云,现在用Q音),这两个各有什么优劣势?

5. 对于你来说,你觉得做音乐app中最大的技术难点是什么?

6. 在技术上,你对自己以后有什么规划?

7. 你有什么要问我的吗?

六面(hr面)

这里就不一一列了,就是问哪里人、以后的发展,拿了几个,都是哪家的,介绍了各种福利之类的。

总结

整体难度适中,但是面的轮数多,流程非常长。但是最后综合考虑了各方面,还是选择去了Shopee。

本文转载自:反向人,版权归原作者所有,本博客仅以学习目的的传播渠道,不作版权和内容观点阐述,转载时根据场景需要有所改动。