TME前端二面

TME腾讯音乐秋招前端二面 面试日期:11.02 面试岗位:软件开发-前端开发方向 时长:约 55 分钟 开局先做一道算法题,然后根据实习和项目来问关联的知识点,会深挖原理和底层的东西,也会一直问你有没有其他方案 1. 算法,限时15分钟完成。给定一个数组,每一项包含x、y坐标,以及width、height,可以看作页面上的一个矩形。多个矩形组合成一个布局,计算它们可以被划分成哪些行或列,并返回二维数组。 2. 实习项目1拷打,介绍性能优化项目最关键的优化点,然后介绍优化前后的流程变化。 3. 公司内部用的微前端是如何解决JS隔离和CSS隔离两个问题? 4. JS隔离的这个沙箱究竟是怎么实现的?你还了解其他哪些实现沙箱的方式? 5. CSS隔离是怎么实现的,还了解哪些CSS隔离方案? 6. 实习项目2拷打,问如何拆分上传模块的逻辑与UI?拆分后的逻辑是如何复用的? 7. 上传文件时,一般会提前计算文件指纹或者哈希值。项目里是怎么计算的? 8. 为什么要给文件计算一个唯一指纹?这个指纹有什么作用? 9. 如果现在让你自己实现文件哈希计算,你会怎么计算它的哈希值? 10. 如果同一个H5页面需要运行在多个App中,而不同App有自己的JSBridge SDK,你们是怎么封装统一调用接口的? 11. 不同宿主可能需要加载不同的JSBridge SDK,如何做到按需加载? 12. 你了解JSBridge底层的JS与Native的通信机制吗? 13. 如果调用JSBridge后没有收到结果,或者返回的信息不符合预期,你一般如何排查? 14. 个人项目拷打,介绍项目最关键的设计,以及复杂度最高的部分,并以此展开深入询问。 15. 如果一个Agent的上下文越来越长,有哪些常见的上下文压缩策略? 16. RAG一般适用于哪些业务场景?检索准确度主要受到哪些因素的影响? 17. RAG只能处理文本和文档吗?如果知识库中有图片或者其他类型的文件,应该怎么处理? 18. RAG有哪些局限性? 19. React或Vue中,如果两个组件不是父子关系,有哪些方式可以实现组件之间的通信? 20. 如果使用状态提升,具体应该把状态放在哪里?多个组件之间如何共享? 21. 如果完全不依赖React、Vue或第三方库,只使用JS和浏览器原生提供的能力,应该如何实现组件之间的通信? 22. Zustand的底层状态管理机制是怎么实现的? 23. 如果使用localStorage传递信息,怎么知道里面的数据发生了变化? 24. 反问

参与讨论