# 2022 年面试过程

# 百度

# 一面

岗位:ACG 智慧工业事业部

结果:通过,但 HC 被锁不再推进了。GoodGame

  • 自我介绍
  • 聊下 React Hooks 原理
  • 聊下跨域,如何发送 cookie
  • 聊下 webpack 优化
  • React 源码
  • React 16.8 之前之后的对比
  • 算法题:LeetCode-56. 合并区间 (opens new window)
  • 反问环节
    • 部门业务:大数据、可视化、自检、巡检
    • 根据面试过程,麻烦给出建议

# 字节跳动

# 一面

岗位:(资深)前端开发工程师-销售系统-EA customer 360

结果:通过

  • 自我介绍
  • 技术选型是怎么考虑的
  • 团队管理是怎么考虑的,举一个 case
  • 长期需求问题和短期需求问题碰到了哪些
  • 你是如何安排开发工作的,请详细聊聊
  • 怎么把控开发进度、评估风险
  • 如何采集用户行为
  • React 和 Vue 的对比:我是从性能角度分析的
  • 小程序
  • H5
  • 场景题:现在有一个网页打开很慢,要这么定位
  • 编程题:实现 EventEmitter
  • 反问环节:
    • 大厂主要看中候选人的哪些品质:技术深度、广度、项目管理、项目理解力
    • 是否方便给打分:不是很方便,不过可以透露一些,由于工作的原因有些技术实践不了之外,看得出来是有意识的在积累技术,很有潜力。

# 二面

  • 自我介绍
  • 看你简历,你说用 Hooks 替换 Function,用 TS 重构 js,请详细聊一下你是怎么想的
  • inline 元素中哪些属性生效:width、height、padding、margin
  • relative 元素是怎么定位的
  • 一个非定高、非定宽的元素如何实现在窗口垂直居中、左右居中
  • content-length 的含义
  • cookie 和 localStorage 的区别
  • addEventListener 的执行顺序
  • 如果使用 useCapture = true, 一个 div 里面包含一个 Button,2 个元素都绑定点击事件,点击 Button 的时候,执行顺序是什么
  • 编程题
for (var i = 0; i < 6; i++) {
  setTimeout(() => {
    console.log(i);
  }, 1000);
}

// 问题1:输出结果是什么?为什么
// 问题2:请改造成正确的输出
// 问题3:请改造成 1->2->3->4->5 每个输出都等待 1s
1
2
3
4
5
6
7
8
9
  • 编程题
标题找旋转数组的中位数题目描述有一个有序数组如:1,2,3,4,5,6,7,
随机选一个点比如 5,反转变成:5,6,7,1,2,3,4
对于上面翻转后的数组,求它的中位数。
1
2
3

# 三面

  • 自我介绍
  • 介绍项目中的前端部分
  • 看输出
var length = 10;
function fn() {
  return this.length + 1;
}
var obj = {
  length: 5,
  test1: function() {
    return fn();
  }
};
obj.test2 = fn;

console.log(obj.test1.call());
console.log(obj.test1());
console.log(obj.test2.call());
console.log(obj.test2());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  • 编程题

相关题目 17. 电话号码的字母组合 (opens new window)

回溯 + 剪枝
实现 `fn([['a','b'],['m','n'],['0','1']])` 排列
输出:['am0', 'am1', 'an0', 'an1', ....]
输出结果不是全排列,字符串重复的只保留一个,例如 'am0' 'ma0' 属于重复

1
2
3
4
5
  • 编程题:42. 接雨水 (opens new window)
  • 从 URL 输入到页面渲染全过程
  • TCP 和 UDP 的区别
  • 生成 DOM 树 + CSS 树之后的过程,越详细越好
  • 如何减少回流、重绘,充分利用 GPU 加速渲染?
  • 设计一个前端架构会考虑什么?换个角度问:考虑产品的可迭代性会考虑哪些因素?
  • 自己的职业发展

# 四面

  • 自我介绍
  • 介绍下产品的背景、功能、架构
  • 介绍 ClickHouse 如何做的分表
  • 你们为什么用 C 写底层
  • 你觉得你做的最好的项目是哪一个
  • 你觉得你最好的技术是什么
  • 反问环节

# HR 面

  • 自我介绍
  • 之前济南的工作是校招加入的吗
  • 之前在济南为什么来北京,离开的原因是什么
  • 追问了之前济南团队的一些事情
  • 来北京这家创业公司是否有过公司状况不好、发展不下去的担忧
  • 现在大环境不好,为什么选择这个时间点看机会
  • 介绍下团队的情况
  • 介绍下你现在的工作内容
  • 介绍下你工作中做的比较好的部分和最后达到的效果
  • 为什么选择字节跳动
  • 对飞书这个产品熟悉吗
  • 除了字节之外,现在还有哪些机会
  • 为什么只选择百度和字节
  • 未来的规划是什么样的
  • 对新的工作有什么期望
  • 反问:后续流程是什么样的
  • 结束之前追问了最后一个问题:最近一段时间你想深入下什么技术