2023校招腾讯-前端开发工程师面经(含1-3面)-已offer

2023校招腾讯-前端开发工程师面经(含1-3面)-已offer
最新回答
vigilia°宝瓜

2020-07-17 00:37:59

2023校招腾讯-前端开发工程师面经(含1-3面)-已offer

一面(62min,mentor)

  • 项目难点:详细询问了项目中遇到的具体难点及解决方案,重点考察了问题解决能力和技术深度。
  • 同源策略

    简单请求与预检请求:简单请求是指那些不需要发送预检请求的跨域HTTP请求,而预检请求是在发送实际请求前,先发送一个OPTIONS请求到服务器,以确认服务器是否允许跨域请求。

    区别:简单请求不需要额外的预检步骤,而预检请求需要服务器先确认。

  • content-type常用值:包括text/html、application/json、application/x-www-form-urlencoded、multipart/form-data等。
  • 文件处理:通常使用FormData对象来处理文件上传,可以方便地附加文件数据到HTTP请求中。
  • 跨域解决方案:包括JSONP、CORS、代理服务器等。
  • 前端安全

    XSS、CSRF原理及防范:XSS(跨站脚本攻击)通过注入恶意脚本到用户浏览器中执行;CSRF(跨站请求伪造)通过冒充用户发送未经授权的请求。防范措施包括输入验证、HTTP头检查、使用令牌等。

    Vue防范XSS攻击:Vue通过模板编译和虚拟DOM来避免直接插入未转义的HTML,从而防范XSS。

  • JWT

    accesstoken、refresh token作用:accesstoken用于验证用户身份并授权访问资源,refresh token用于在accesstoken过期后获取新的accesstoken。

    存放位置:通常存放在浏览器的localStorage或sessionStorage中,或作为HTTP请求头的一部分。

    具体流程:用户登录后,服务器返回accesstoken和refresh token。客户端使用accesstoken访问资源,当accesstoken过期时,使用refresh token获取新的accesstoken。

  • 手写题

    版本号比较:实现了一个简单的版本号比较函数。

    节流:实现了一个节流函数,用于限制函数在指定时间间隔内的调用次数。

  • Vue生命周期:详细询问了Vue 2.x的生命周期钩子,以及Vue 3.x新增的组合式API。
  • 父子组件生命周期先后顺序:父组件先创建和挂载,子组件随后;父组件先卸载和销毁,子组件随后。
  • Vue双向绑定原理:基于数据劫持(Object.defineProperty)和发布者-订阅者模式实现。
  • 依赖搜集过程:在组件渲染过程中,通过getter和setter搜集依赖,形成依赖关系图。
  • vue nextTick 原理及使用场景:nextTick用于在下次DOM更新循环结束之后执行延迟回调。其原理是利用了JavaScript的异步执行机制,确保在DOM更新完成后执行回调。
  • git常用命令:询问了git clone、git add、git commit、git push等常用命令。
  • 开源项目PR经历:询问了是否有参与过开源项目,并贡献代码。
  • package.json配置:询问了修改过哪些配置,以及这些配置的具体作用。
  • 投腾讯原因及意向城市:询问了选择腾讯的原因,以及意向工作城市。

小技巧:通过修改简历中的名字和描述,增加了被注意的机会。

二面(48min,leader)

  • 实习经历:详细询问了实习期间的工作内容和收获。
  • 项目介绍及难点:要求详细介绍一个项目,并阐述遇到的难点及解决方案。
  • 选择前端的原因:询问了为什么选择前端开发作为职业方向。
  • 计算机基础课程:询问了擅长的计算机基础课程,如数据结构、算法设计、计算机网络等。
  • 前端数据结构:询问了前端开发中常用的数据结构。
  • 排序算法:要求列举并解释多种排序算法的时间和空间复杂度。
  • B+树、红黑树:询问了B+树和红黑树的区别及应用场景。
  • 前端算法应用:询问了在实际开发中用过的算法。
  • 最近关注的算法:询问了最近在学习和关注的算法。
  • code经历:询问了最近一次编写代码的经历。
  • 最有帮助的计算机基础课程:询问了哪门课程对前端开发最有帮助。
  • 网络模型及TCP定时器:详细询问了网络模型及TCP的各种定时器。
  • UDP可靠传输:询问了如何实现UDP的可靠传输。
  • 文件断点续传:询问了如何实现文件断点续传,以及断点标记的存储位置。
  • 学习前端知识的方法:询问了平时如何学习和积累前端知识。
  • 意向城市及offer情况:询问了意向工作城市及目前的offer情况。

三面(35min,技术总监)

  • 本科学校及跨考原因:询问了本科学校及选择跨考的原因。
  • 实习经历及团队分工:详细询问了实习经历及在团队中的分工。
  • 老项目接手及BUG处理:询问了如果接手一个老项目,遇到代码不是自己写的、项目BUG、业务跑不通等紧急情况时,会如何处理。
  • 前端BUG查找方法:询问了平时在前端开发中如何查找和定位BUG。
  • PC应用卡顿排查:询问了如果PC应用有几百个页面,用户反馈很卡但不知道具体原因时,会如何排查问题。
  • 后端学习经历:询问了是否学过后端技术,如JAVA、GO等,并与node.js进行了对比。
  • HTTP版本改进:询问了HTTP 1.0、1.1、2.0、3.0的改进点,以及HTTP/2.0实现多路复用的底层原理。
  • websocket原理及HTTPS安全性:询问了websocket的构建原理、基于哪个HTTP版本构建,以及HTTPS为什么是安全的。
  • 职业发展规划:询问了职业发展规划,是否打算走全栈路线。
  • offer情况及海投原因:询问了目前的offer情况及选择海投的原因。

HR面(28min)

  • 学历背景及竞赛经历:询问了学历背景、竞赛经历及奖学金情况。
  • 城市偏好及父母意见:询问了对北京和深圳两个base地点的偏好,以及父母的看法。
  • 个人情况:询问了是否有女朋友等个人情况。
  • 部门业务了解程度:询问了对部门具体业务的了解程度及使用情况。
  • 对腾讯的看法及投腾讯原因:询问了对腾讯的看法及选择腾讯的原因。
  • 职业发展规划:再次询问了职业发展规划,是否打算转全栈。
  • 毕业时间及实习意愿:询问了毕业时间及是否能提前实习。
  • offer情况:最后询问了目前的offer情况及最终选择意向。