Skip to content

腾讯前端面经 - 按面试轮次分类

本文档按面试轮次对腾讯前端面试内容进行分类整理,帮助候选人了解不同面试阶段的重点和难点。


目录


一面内容汇总

技术基础

JavaScript基础

  1. 各种原生方法的使用,基本类型和引用类型
  2. es6中的set(集合)和map(字典)的使用和对应的数据结构
  3. sort的实现
  4. 各种css js基础相关问题

原型与继承

  1. 说一下原型链,原型链实现继承

HTTP与TCP

  1. http和tcp协议?

缓存

  1. 缓存相关(对比缓存?强缓存?对应请求头)
  2. cookie有哪些属性?

跨域

  1. 简单请求?跨域?

Vue

  1. vue中nextTick的实现,结合浏览器事件循环机制说一下?

模块化

  1. 说说commonjs和esmodule?

学习情况

  1. 最近在看什么新东西吗?

WXG一面特点

  • 60min写代码,写完后电话交流
  • 一上来就是4道算法笔试题
  • 时间限制1小时
  • 非常重视算法能力

WXG一面题目

  1. 数组扁平化(不使用递归和字符串处理)
  2. 循环升序数组查找(时间复杂度O(logN))
  3. 并发请求测试函数设计
  4. setTimeout(0)和promise.then()区别
  5. 实时协作编辑使用什么协议?
  6. WebSocket怎么建立的?和HTTP的关系
  7. WebSocket有没有同源限制?

二面内容汇总

项目深入

  1. 项目相关问题,项目还是需要好好准备。问得有点仔细
    • 遇到过哪些难点?怎么解决的?
    • 做过哪些优化?优化有量化吗?
    • 用过哪些loader?plugin?
    • 你写的这个插件实现了什么?怎么实现的?
    • sourcemap原理知道吗?

HTTP与TCP深入

  1. http和tcp、https、http2(队头阻塞?解决了哪些问题?哪有哪些问题未解决?tcp和udp?)
  2. 摘要算法和对称加密、非对称加密大概说一下?
  3. 摘要和加密的区别?
  4. 知道哪些加密算法?
  5. websocket的使用场景(socket.io降级)?

前端安全

  1. 前端安全防范措施?xss攻击和csrf攻击?

Vue深入

  1. 怎么看待virtual dom?ast语法树了解吗?
  2. vue-loader做了哪些事情?
  3. vue diff?
  4. vue computed和watch区别?
  5. computed怎么实现的缓存(dirty)?
  6. vue3双向数据绑定实现?createRender?
  7. 和vue2有哪些不同,提到了函数式编程,说下对函数式编程对的理解

设计模式

  1. 对MVC (react) MVVM(vue)的了解

Node.js

  1. node相关问题,node的事件循环机制?
  2. stream两种模式的区别?
  3. 看过koa源码都会觉得和express有很大不同,说一下?

小程序

  1. 对小程序的了解?从技术上讲
  2. 小程序有什么问题或有什么建议?

WXG二面特点

  • 聊项目和实习
  • 重点关注项目细节
  • 可能涉及小程序技术讨论

三面内容汇总

项目相关

  • 聊项目

前端安全

  1. 讲解CSRF

其他

  • 可能涉及更深入的技术讨论
  • 考察候选人的技术广度和深度

四面及以上内容汇总

WXG面委一面

  • 30min做题,写完腾讯会议交流

题目1:闭包与事件循环

javascript
for (var i = 0; i < 4; i++) {
  setTimeout(function() {
    console.log(i);
  }, 300);
}

请问打印结果是?

题目2:爬楼梯

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法

题目3:闭包嵌套

javascript
function test(a,b) {
  console.log(b)
  return {
    test:function(c){
      return test(c,a);
    }
  };
}
var retA = test(0);
retA.test(2);
retA.test(4);
retA.test(8);
var retB = test(0).test(2).test(4).test(8);
var retC = test('good').test('bad');
retC.test('good');
retC.test('bad');

请问打印结果是?

WXG面委二面

  • 小程序与网页开发的区别
  • Babel转译原理
  • 数组的sort排序算法
  • 快排原理

面委面试特点

  • 汇集了微信事业群很多技术大佬
  • 面委面试主要是为了保证wxg招聘的公平公正,严格把关每一个wxg的候选人
  • 题目难度较高
  • 需要扎实的基础和深入的理解

笔试题目汇总

WXG一面笔试(1小时4道题)

  1. 三数之和的变形题
  2. 组合问题
  3. 图相关的题目
  4. 打家劫舍 III(动态规划)

算法题汇总

数组与字符串

  1. 实现一个函数,接受数组作为参数,数组元素为整数或者数组(数组里面还可能有数组),函数返回扁平化后的数组。要求给出不使用递归、不使用字符串处理的解法
    • 如:输入 [1, [2, [ [3, 4], 5, []], 6]],输出 [1, 2, 3, 4, 5, 6]
  2. 假设有一个升序数组,经过不确定长度的偏移,得到一个新的数组,我们称为循环升序数组。(例:[0,3,4,6,7] 可能变成 [6,7,0,3,4])。给定一个数字和一个循环升序数组,判断这个数字是否在这个数组内,在的话返回 true,否则返回 false。要求时间复杂度 O(logN)
    • 示例1:输入:nums = [6,7,0,3,4], target = 0,输出:true
    • 示例2:输入:nums = [6,7,0,3,4], target = 2,输出:false

并发与请求

  1. 设计一个函数,用于测试请求一个 URL 的平均耗时。要求可以设置总的请求次数以及并发请求个数。假设环境是小程序,使用的接口是 wx.request ,不考虑请求失败的情况

动态规划

  1. 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法
  2. 爬楼梯
  3. 打家劫舍 III
  4. 三数之和的变形题
  5. 组合问题
  6. 图相关的题目

搜索与查找

  1. 搜索二维矩阵

字符串处理

  1. 猴子吃香蕉
  2. 回文字符串个数(这道题出现频率很高,朋友面试的时候也遇到了,最长回文子字符串)

树与堆

  1. 堆和栈的区别,哪一个需要程序员控制?
  2. 给你一个数组,把他变成大顶堆/小顶堆

手写题

  1. 手写bind
  2. 手写简版promise,基础架子,不用写all、race等api
  3. 手写代码函数柯里化和数组转树

HR面试内容

个人问题

自我介绍

  1. 自我介绍一下?
  2. 自我介绍和项目介绍

个人评价

  1. 个人在技术能力或职业发展方面,相较于他人有哪些突出的优势和需要改进的劣势?
  2. 自我评价一下
  3. 你觉得有哪些优点?
  4. 周围人对你的评价
  5. 你遇到的难题

学习与成长

  1. LeetCode刷题数量大概是多少,是否有偏好的题目类型?
  2. 怎么学习前端的?
  3. 抗压能力如何?
  4. 最近在看什么新东西吗?
  5. 为什么要离职?怎么学习的?
  6. 你遇到问题是更喜欢自己找答案还是去问别人?
  7. 平时花在写代码上的时间多吗?

背景信息

  1. 方便介绍一下籍贯和教育背景吗?
  2. 家在哪里?
  3. 家住哪?

其他

  1. 有什么问题想向我们提问吗?
  2. 有什么问题吗?
  3. mySQL了解吗?
  4. 实习周期?
  5. 平时关注哪些技术论坛?
  6. 有写技术博客的习惯吗?
  7. 平时有什么爱好?
  8. 在访问国外网站时,你遇到过哪些问题?你是如何解决的?

WXG HR面试特点

  • 周围人对你的评价
  • 你遇到的难题
  • 微信是统招统分,如果你被分到了你不太想去的部门(边缘部门),你会怎么做

各轮次面试特点总结

一面

  • 重点:基础知识、算法能力
  • 时长:1-2小时
  • 难度:中等
  • 特点:WXG有笔试环节,普通部门以基础知识为主

二面

  • 重点:项目经验、技术深度
  • 时长:1-2小时
  • 难度:中等偏上
  • 特点:会深入问项目细节和技术原理

三面

  • 重点:综合能力、技术广度
  • 时长:1小时左右
  • 难度:较高
  • 特点:考察技术广度和深度

四面及以上(面委)

  • 重点:算法能力、综合实力
  • 时长:30-60分钟
  • 难度:很高
  • 特点:汇集技术大佬,题目难度高,严格把关

HR面试

  • 重点:软技能、职业规划
  • 时长:30分钟-1小时
  • 难度:中等
  • 特点:考察个人素质、团队匹配度

备考建议

一面准备

  • 复习基础知识(网络、JavaScript、Vue)
  • 刷基础算法题
  • 准备自我介绍

二面准备

  • 深入梳理项目经验
  • 准备项目难点和优化案例
  • 理解技术原理(虚拟DOM、Diff算法等)

三面准备

  • 拓展技术视野
  • 关注前端新技术
  • 思考技术选型和架构

四面及以上准备

  • 重点刷算法题
  • CodeTop刷WXG相关题目
  • 准备手写核心代码(bind、Promise等)

HR面试准备

  • 准备自我介绍和项目介绍
  • 思考职业规划和发展方向
  • 准备几个向面试官提问的问题

Released under the MIT License.