微信社招面经(已拿offer)


背景

最近面试了微信,已拿offer,来分享一下面经。

问题比较多,而且很多面试题都是跟个人项目相关的,项目相关的问题借鉴意义不大,所以这里总结一些与项目无绝对关系的问题,欢迎围观~

PS:这次跳槽的复习路线/方法等,后面会整理出来,欢迎持续关注哦~

笔试

  1. 数组交集,编写一个函数,输入两个数组,输出它们的交集。输出数组中不含重复的元素,元素排列顺序可随意。

  2. 二叉树的搜索,输入一个普通二叉树的根节点,实现一个调度器,调用调度器的next()方法,将返回二叉树中下一个最小的数;调用迭代器的hasNext()方法,将返回是否存在下一个数。二叉树节点是整数,无序。

  3. 三角形个数,输入一个非负整数的数组,如果将数组元素选作三角形的边长,编写一个函数,输出这个数组可构成的三角形数量。

  4. 数组切分问题,输入一个正序排列的整型数组,如果它可以被切分为1个或多个子序列,输出True,反之False。子序列需为连续的整型数组,并且长度至少为3。

例1:
输入: [1,2,3,3,4,5]
输出:True
解释:可以切分为2个各自连续的子序列:
1, 2, 3
3, 4, 5
例2:
输入: [1,2,3,3,4,4,5,5]
输出:True
解释:可以切分为2个各自连续的子序列:
1, 2, 3, 4, 5
3, 4, 5
例3:
输入: [1,2,3,4,4,5]
输出:False
解释:无法切分出长度至少为3的子序列。
  1. 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法.

  2. 求下面代码的输出

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');
  1. top k

  2. 闭包问题及优化

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

PS:一面笔试要求是30分钟,前4道算法题,二面笔试题是15分钟

与项目关系不大的问答题

  1. 节流防抖(实现/场景/源码,如lodash实现原理)

  2. 事件循环(浏览器/node/版本差异)

  3. setTimeout 实现原理

  4. react 和 vue 的区别

  5. Promise 原理

  6. 前端错误监控及容灾

  7. 性能优化

  8. 谈谈 node 的内存泄漏

  9. 开发过程中遇到的最大挑战是什么

  10. 学习的动力怎么来的,如何维持

  11. 浏览器的渲染机制是怎样的

  12. SSR 作用及优缺点

  13. 如何进行状态管理

  14. webpack 及浏览器的技术分享目的是什么,分享了什么,怎么做的分享

  15. 如何进行项目重构

  16. 进程与线程的区别

  17. 说说知道的设计模式

PS:由于面试全过程历时比较长,一些题目已经忘记了。大概记得这么点,然后很看项目,每一轮都详细问了项目~

可能感兴趣的问答

  1. 面试一共几轮

我本人一共 4 轮技术面 + 1 轮HR面。目前微信职级为9级以下的技术岗不用经过面委,9级以下的一般4轮技术面,内部转岗可3轮技术面,9级及以上的需要走面委面试,大概形式是做份ppt去讲自己的项目经历及其他技术项。9级及以上的就5-10轮技术面不等。

  1. 历时多长

我本人总历时一个多月(相对来说算很快了),所以如果你要面腾讯,千万不要裸辞,不对,面什么都不要裸辞,这年头不好混,怂一点。

  1. 整体面试流程是怎样的

内推->一面技术->二面技术->三面技术->四面技术(GM)->HR面->口头offer->正式offer->背调->入职

每个阶段耗时一到两周的时间

  1. 微信工作地点

目前微信在广州,大部分的组都在广州,其中微信支付在深圳。我本人的岗位是在广州。

  1. 微信考算法多吗

多,基本上就是算法+项目,别看我只是写了几道算法题,那是因为...

更多

其实单看问题,参考性还是比较小的,毕竟面试官主要会根据简历去发问。这里的一个感受就是,项目中遇到的最大挑战,这个问题真不好答,我当时答得也不够好,后面又回去总结了一波项目,建议大家都好好总结一下自己平时遇到的问题,寻根究底。

这部分的题目,我会同步到我的每周N题上,欢迎大家来交流答案啊。想刷题的也可以来,地址如下:https://github.com/LuckyWinty/fe-weekly-questions/issues

相关热门推荐

阿里社招面经 (已拿 offer)

深圳头条-开发者生态部门-面经-已拿offer

十道大厂面试题(含答案)总结

最后

  • 欢迎加我微信(winty230),拉你进技术群,长期交流学习...

  • 欢迎关注「前端Q」,认真学前端,做个专业的技术人...

原创不易,点个在看支持我吧

你可能感兴趣的:(微信社招面经(已拿offer))