# 一、前言

我不知道是腾讯这边比较侧重对于全面性人才的培养,还是这一次只是单纯的 KPI 面,我是第一次遇见一个 专门问后端问题的前端面试

当然也不排除我简历上写的 熟悉 Node.js 引起了面试官的注意的可能。

总体来说面试体验比较好,遇到没有了解过的问题我也直接就说不知道,不耽误面试的时间。

面试官也比较和蔼,也不会对我太过于刁难,问的问题也都是浅尝辄止,算是对考生比较友好吧。

这一次也是了解到了挺多的新概念,算是比较有收获的一场面试。

# 二、题目列表

  1. 自我介绍

  2. 你简历上写的都是前端相关的东西是吗? 那后端相关的东西有接触过吗?

    我直言不讳,因为有几次比赛项目都是我一个人担任的全栈开发,我想着可能这也算是一个加分项,于是我说接触过。

  3. 那你有接触过数据库相关的东西吗?

    既然都是做后端了,那肯定有接触数据库,于是我就说有,并且根据数据库的分类讲了几种我用过的。

  4. 那么你能够讲一下 MySQL、MongoDB、Redis 三者的应用场景分别有哪些吗?

    我就按照我之前用过的一些场景稍微列举了一下,也不知道是不是正确的。

  5. 你刚刚说 Redis 主要是用来做缓存,那么后台还有没有别的方法可以去对数据进行缓存的操作?

  6. Redis 数据是存在哪里的?如果数据量一大会不会有问题?如何解决数据量过大的问题?

  7. Redis 你目前用的是什么样的服务?是自己搭建的还是云服务?

  8. 我看你的简历上有个涉及到权限管理的项目,可以讲一下这个项目权限设计逻辑是什么吗?

  9. 用户如果绕过了你前端的一个权限限制,直接伪造请求调用接口进行一些跨权限的操作,后端是怎么进行处理的?

  10. 你们这个项目用的是 HTTP 还是 HTTPS?请描述一下 HTTPS 的鉴定流程。HTTPS 链接建立的速度和 HTTP 相比如何?除了因为加密损耗的时间,还有其他因素使得 HTTPS 比 HTTP 更慢吗?

  11. 移动端 H5 页面和 PC 端 H5 页面的制作有什么区别或者是难点?

  12. 讲一下 Vue3 当中的动态组件机制。

  13. 讲一下浏览器资源传输方面的优化手段。

  14. 讲一下强缓存、协商缓存。对于协商缓存,服务器怎么去判断资源是否有被修改过?Last-Modified 这个字段有什么问题吗?为什么会有 ETag 这个东西?ETag 和 Last-Modified 两个字段哪个优先级更高?

  15. 反问环节。

# 三、后记

没有考算法题,整场面试面试官给我的印象就是雷厉风行,基本我回答了问题后立马给出反问、反馈,并且对于数据库相关的知识和我讨论了好久,收获还是很大的,留下了一堆的疑问待去解决。

不过目前似乎已经没有后续了,原本进度是初试,刚才查了一下又退回成刚完成测评的程度了(笑)。