【24实习】腾讯WXG微信支付前端面经
今年春天本来没有太强的找实习的念头,只投了阿里、腾讯、米哈游三家公司,米哈游一面完就没动静了,阿里更是到五月简历都没评估完,腾讯意向填的IEG,被捞到了WXG,摸爬滚打迷迷糊糊地面了五轮面试
前期准备
- 基本的八股
- 项目经历、实习经历
- CodeTop WXG前端相关算法(大概50多题)
timeline
- 3.18 投简历
- 3.26 笔试
- 3.28 一面
- 3.31 二面
- 4.3 三面
- 4.14 四面(面委会)
- 4.26 hr面,当天云证 + 录用评估
- 5.3 oc
- 5.4 offer
3.28 一面
- 面试官上来直接介绍微信支付团队是做啥业务的
- 自我介绍
- 实习里深度行为埋点的背景和实现
- 解决线上bug的流程
- BFF层的作用,缺点与弊端
- 后端实现登录的逻辑
- Cookie和Session的作用
- 单点登录的理解与流程
- TS里type和interface的区别
- 在函数入参里如何实现类型映射
- 题目一:this指向判断输出(直接就是一波回答错)
- 题目二:宏任务微任务执行顺序
- 题目三:手写深拷贝(简单实现)
- CSRF原理、防范
- HTTPS原理
- 网络通信中端口的作用,位于七层模型哪一层
- 判断以下四种情况是否跨域
- https://a.tencent.com/foo/bar
- http://a.tencent.com/foo/bar
- https://a.tencent.com/foo/aaa
- https://b.tencent.com/foo/bar
- 题目四:33. 搜索旋转排序数组 - 力扣(LeetCode)
- ESLint、Prettier、Husky、Lint-Staged分别干什么用
- 反问:前端算法要求啥难度、技术提升
题目一:
const obj = { foo: 1, bar: () => { return this.foo; } } console.log(obj.bar());
题目二:
console.log(1) const promise = new Promise((resolve) => { console.log(2); resolve(); console.log(3); }) console.log(4) promise.then(() => { console.log(5); }).then(() => { console.log(6) }) setTimeout(() => { console.log(8); }, 10) setTimeout(() => { console.log(9); }, 0)
3.31 二面
- 在字节做的具体工作
- 在字节遇到最难解决的问题
- 校内项目
- 想做题,面试官当面看一面做过的题,问难度咋样;
- 微信小程序相关:
- 内置组件(不记得)
- setData注意事项(不记得)
- 怎么获取用户的头像(调微信给的api呗)
- 说是很早以前写过原生的小程序,后面只用uniapp,确实也不知道了,不再细问
- TS相关:
- const和readonly的区别
- any、unknown、never的区别
- 内置类型,如Omit、Pick、Parameter等等
- tsconfig中一般进行的配置
- 看本地项目的代码风格,实现过的比较复杂的功能
- 职业规划
- 面试官直接开始介绍微信支付业务,部门风格、氛围;聊基建
4.3 三面
上来先写三个题
- 题目一:OO思想写一个签到器
- 题目二:106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode)
- 题目三:找出数组中重复出现的元素(随便找一个就行)要求时间O(n),空间O(1)287. 寻找重复数 - 力扣(LeetCode)
- 问项目
- HTTP报文结构
- HTTP和HTTPS区别,具体过程
- HTTPS握手和TCP三次握手区别
- 数组和链表的区别,使用时的优缺点
- 红黑树应用的场景???
- 作业:写个文档描述下自己的项目
4.14 四面(面委会)
- 聊项目、优化、理解
- 反问:
- 成长路线
4.26 hr面
- 职业规划
- 兴趣爱好
- 之前实习/项目合作者的评价
- 之前实习/项目遇到过的最大的挫折
- 城市意向
- 实习时间
- 转正要求