[面经分享] 收获多家大厂offer | 分享我的2022秋招经历
前言
好久不见,我是LeBron,有段时间没写博客了。最近几个月的大部分精力都放在秋招上了,边实习边秋招还是挺吃力的,总算结果还是不错。
先介绍一下个人情况:2022届双非本科应届生,项目经验和经历还算丰富,在字节实习至今也快8个月了,详细情况可以来我的博客看看哈 : LeBronChao’s Blog
秋招从7.19 ~ 10.24历时三个多月,腾讯、阿里、字节、百度、大疆、华为、Shopee、滴滴、美团、拼多多10家公司,将近40场笔试 / 面试(自我介绍都快念麻了),基本全部通过收到offer,借此机会做个总结和大家分享一下面经。
面试前的准备
简历
这个其实不用讲太多了,尽量地写出亮点,比如
- 开源项目经验
- 实习经历 & 重点产出
- 技术深度展现 / 知名开源框架PR
- 技术热情 / 影响力
- 知识产权 / 论文
- 校园项目经验 / 亮点经历
- 等等…
- 重点:Word格式容易出问题 尽量用PDF格式
相应岗位知识
这个其实靠平时积累会比较多一点,面试前可以通过面经做个自测,我面试的大部分是前端岗位主要分为以下几个方面
-
计算机网络
- TCP / UDP
- HTTP / HTTPS / WebSocket
- LB / CDN / DNS / IP
- 网络安全
- …
-
操作系统
-
开发技能 & 原理
- HTML / CSS(LESS) / JS / TS
- Vue、React、Node、Webpack等
- 浏览器 / 小程序 / 跨端
- 性能优化 / 安全策略
- 这个根据自己的实际情况来定,不熟悉的不要写到简历里
-
算法题 / 智力题
-
系统学习数据结构和算法
-
然后就是刷题了,Hot100和常见题刷起来吧,主要刷easy和middle,hard没必要
-
培养举一反三的能力
-
题库
-
-
相应的技术广度扩展和深度探索
-
新的技术动态关注程度,比如
- ES新特性
- Vue3的更新和对比
- 字节的Modern.js
- 阿里的Kraken
- …
-
提前想好常见问题的答案和对面试的公司做初步的了解,比如
- 你的项目有什么亮点和难点
- 你会从哪些角度去考虑选择毕业后的第一家公司
- 你觉得XXX是一家怎么样的公司
- 你有什么优点和缺点
- 为什么想做全栈工程师
- 你的职业规划是怎么样的
- …
感兴趣的话可以看看这篇文章:[建议收藏] 初中级前端应该掌握的基础知识
我的公众号、博客里也有挺多相关知识的讲解,感兴趣可以看看:前端LeBron
欢迎关注我的微信公众号:
自我介绍
你和面试官一般都是初次见面,他只能通过你的简历和自我介绍来了解你。所以说不是特别熟悉的东西不要写到简历里,自我介绍也不要说。面试官一般也基本不会逐字逐句地看你的简历,可能没法发现你的亮点,自我介绍这不是把机会给你了吗(开始装逼哈哈哈。自我介绍可以由你的基本信息、项目经验、技术亮点和解决哪些比较复杂的问题、个人经历的亮点和未来的规划简述组成。也可以尝试引导面试官问你问题,一般面试官都会从简历 / 自我介绍中开始发问。自我介绍要简明干练,一般1min左右就好了。
总结
三个多月的秋招生活告一段落,最终选择了留在字节工作。新时期的工作带来了新的挑战,没有躺赢的命那就站起来奔跑吧!努力是会有结果的!
我是一个即将毕业的22届双非本科应届生,在字节游戏中台做前端开发工作。希望我的秋招面试经验可以给予正在找工作的你一点帮助,特别是正在奋战秋招/实习的同学、学弟和学妹们。字节游戏中台前端部门求贤若渴,持续招人中。感兴趣的同学可以通过内推链接投递,有问题也可以加微信沟通。Vx:LeBronChao-
游戏中台内推:
-
深圳
- 社招:前端开发(高级)工程师-游戏中台
- 校招 & 实习:前端开发实习生 — 有转正机会
-
上海
- 社招:前端开发(高级)工程师-游戏中台
- 校招 & 实习:前端开发实习生-独立闭环业务(可转正)
-
【社招总内推链接】
-
【内推码】
- 4FCV6BV
-
【我的邮箱】
废话不多说,直接上面经↓
字节
10.9 实习转正答辩 通过
腾讯
8.17 WXG游戏一面 60min 通过
- 实习工作主要负责什么
- 小程序开发中遇到过什么问题?怎么解决的
- 实习项目的难点、亮点
- 字节小程序和微信小程序有什么区别
- Uni-app框架做了什么工作、处理?
- 用Uni-app开发的过程中遇到过什么问题?怎么解决的?
- 从输入网址到整个渲染过程描述
- 除了HTTP缓存还有什么缓存方式?
- HTTP缓存、localstorge、sessionstorge、cookie、indexDB这些方式实现缓存有什么区别、特点
- 做过CDN相关的工作吗?
- CDN有什么好处呢?
- 聊参与的开源项目技术栈、云开发
- 进程和线程的区别?
- 进程间通信方式有哪些?
- 有用过Mysql?讲解一下什么是事务?
- 二叉树有哪些遍历方式?哪些属于DFS?
- 有用过预处理器吗?有什么特点?
- 有考虑过多主题样式吗?怎么实现?
- Node用过吗?用过哪些相关框架?做过哪些东西?
- 手撕jsonStringfy
- 实现JSON.parse的思路?除了eval和new Function(AST、编译原理)
- 跨端方式有哪几种解决方案?
8.18 WXG游戏二面 40min 通过
- 为什么选择做前端?
- 前端和其他方向相比,比如机器学习,有什么区别和特点
- 怎么样才算前端做得比较好?
- 有做过性能优化吗?怎么做得?
- 小程序是怎么跑在客户端的?
- 双线程架构有什么好处呢?
- 如果不使用双线程架构会怎么样?在技术指标上会有什么变化?
- 体验卡顿问题?一帧大概多少毫秒?
- JS和渲染,你觉得一帧各占多少毫秒比较合适?
- 说一说各种跨端的方式?JSB是怎么进行桥接的?
- 除了JSB还有什么连接方式吗?
- 做过性能优化,有哪些操作?首屏渲染优化了多少秒?达到目标了吗?达到你自己的目标了吗?
- 各个操作分别优化了多少毫秒?
- CDN的原理?为什么资源加载快?
- 如果你是一个CDN服务商,你会怎么设计你的CDN来吸引开发者。
- 什么情况下会存在跨域问题?
- 你在字节感受怎么样?为什么会选择来微信?
- 你觉得首屏渲染多少秒是一个合格的标准?
- 之前有投递过腾讯吗?为什么没有来?
- 后面可以过来实习吗?实习多久?后续在哪个城市发展?
- 反问环节、业务介绍
8.30 WXG游戏三面 30min 通过
- 实习多久了?为什么投递腾讯?
- 聊实习业务、技术难点、亮点,实习对个人的提升
- 小程序怎么调用客户端能力?JSBridge初始化需要多少时间?
- Faas和普通的后端工程服务有什么区别和特点?
- 原子服务之间的调用会有什么问题吗?
- 你自己起一个Node后端项目?需要做什么操作能让它更好更稳定地运行呢?
- 算法题 LeetCode middle 122 买卖股票的最佳时机II
- 反问环节、新人培养、业务了解
9.7 WXG游戏 hc不足流程结束
9.14 TEG腾讯大数据(数平)一面 40min
- 字节实习项目介绍、难点、亮点、挑战
- 企业项目性能如何?FCP、FMP如何?是否进行了分包加载?包体积大小如何?
- Vue路由模式有几种?有什么区别?
- Vue最大的优点和缺点是什么?
- 有实战过React吗?和Vue对比有什么区别和优缺点?
- Class组件和函数组件有什么区别?
- React组件间数据传递方式
- 用过打包工具吗?介绍一下Webpack
- 用过哪些Loader和Plugin?
- Plugin的原理和编写思路是怎么样的?
- 前端异常和性能监控怎么做?让你设计一个异常和性能监控平台你会怎么设计?
- LocalStorge和cookie有什么区别?
- ES6实现排序有哪几种方式?
- 了解Set吗?介绍一下
- 解决跨域的方式有哪几种?分别是什么原理和实现形式?
- 有用过代理工具/抓包吗?
- 个人职业规划
- 用过Node吗?有哪些应用场景?
- 字节转正了吗?会因为什么选择一家公司?考虑哪些因素?
- 反问环节、业务介绍
9.15 TEG腾讯大数据(数平)二面 60min 通过
-
物联网工程和计算机是什么关系?
-
大学学习了哪些课程?计算机系列课程学过吗?
-
简历上各个项目挨个聊
-
数组和链表有什么区别和特点
-
链表有多少种类型?
-
双向链表的应用场景有哪些?
-
一道贪心算法题
有1、5、10、50、100面值硬币,输入一个长度为5的数组,表示有多少枚对应面值的硬币,再输入一个需要凑齐的数值,输出最少需要多少枚
-
常见的排序算法有哪些?
-
快排的实现思路是?时间复杂度是?冒泡呢?
-
有用过哪些设计模式?介绍一下
-
常用Vue的哪个版本?nextTick是怎么实现的?什么原理?知道process.nextTick吗?
-
Vue异步更新介绍一下
-
聊浏览器执行机制、事件循环、多线程架构
-
Vue怎么实现数据双向绑定和视图更新
-
有用过ts吗?有什么好处和特点?
-
聊字节实习项目
-
聊小程序WebView预加载、热更新机制
-
反问环节、业务介绍
9.23 TEG腾讯大数据(数平)GM三面 20min 通过
- 本科期间产出了很多论文和知识产权?是很早就开始做了吗?
- 你是一个学霸吗?还是实践能力比较强?
- 聊字节实习项目和工作
- 聊职业规划、个人发展
- 为什么想转全栈?
- 去字节实习的目的是什么?
- 字节如何评估你的实习工作?
- 你如何做你的述职答辩?
- 你如何考虑你的校招去向,会因为哪些因素选择一家公司?目前更倾向哪家公司?说说你的想法
- 你觉得腾讯和字节有什么不同?
- 反问环节
9.26 TEG腾讯大数据(数平) HR面 20min 通过
- 为什么不考虑考研?
- 介绍一下获得国一等奖的项目和发明专利
- 介绍一下开源项目
- 你觉得字节是一家什么样的公司?
- 你觉得腾讯是一家什么样的公司?
- 你觉得TEG(技术工程事业群)的价值怎么体现?
- 你觉得加入腾讯TEG工作有什么挑战
- 为什么想转全栈?
- 手里还有其他offer吗?怎么考虑和选择
- 哪里人?后续在哪个城市发展?
- 有无亲属在腾讯
- 反问环节
阿里
8.13 淘系一面 60min 通过
一面老板直接上了我是没想到的
-
为什么想来阿里?
-
聊一下你觉得做得比较好的项目,有什么难点和亮点?
-
聊负载均衡器项目
- Node进程间通信方式是怎么实现的?
- Node多进程架构是怎么样的?怎么监听同一个端口
- 一致性哈希算法的实现原理是?
- 最小连接数算法的实现方式是?
- 介绍一下ARP协议的作用
- 你的负载均衡器有用到ARP应用吗?怎么应用?
-
聊企业项目亮点
-
讲讲Faas的理解,优缺点
-
小程序的技术架构原理是怎么样的?
-
小程序为什么要使用双线程+JSB的架构?
-
Vue3的hooks原理?
-
Vue3有哪些hooks API?
-
讲一讲Webpack的原理
-
反问环节
9.7 淘系 拖了一个月告知hc不足…
华为
10.16 一面 60min 通过
-
算法题
碰撞检测算法,给定一个数组表示一系列行星。对于数组的每一个元素,其绝对值表示行星的大小,正负表示行星移动的方向(正表示向右移动,负表示向左移动)找出碰撞后剩下的所有行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星都会爆炸。两颗移动方向相同的行星永远不会发生碰撞
用例:
[5, 10, -5] => [5,10]
[8, -8] => []
[10, 2, -5] => [10]
[-2, -1, 1, 2] => [-2, -1, 1, 2]
-
Vue声明周期有哪些
-
讲一讲什么是MVC
-
Vue和React有什么区别
-
Vuex有哪些使用场景?为什么使用?Vuex的实现原理是?
-
Vue的路由模式有哪些?区别和实现原理是?
-
物联网场景Web和常规Web场景有什么区别?
-
HTTPS加密原理是?
-
讲讲你做的负载均衡器
-
小程序和h5有啥区别?
-
Uni-app的转译原理介绍一下
-
反问环节、业务介绍
10.16 二面 45min 通过
-
算法题
给定一个数组,里面有6个整数,求这个数组能够表示的最大24进制的时间是多少,输出这个时间,无法表示输出invalid。
输入描述:
输入为一个整数数组,数组内有六个整数。输入数组长度为6,不需要考虑其它长度,元素值为0或者正整数,6个数字每个数字只能使用一次。
输出描述:
输出为一个24进制格式的时间,或者字符串"invalid"。
备注:输出时间格式为xx:xx:xx格式。
示例1 输入[0,2,3,0,5,6]
输出 23:56:00
示例2 输入[9,9,9,9,9,9]
输出invalid
-
介绍知识产权(发明专利、实用新型专利、软件著作权),如何产出,团队构成和个人角色。
-
介绍个人国奖项目
-
大学四年的规划、经历和职业规划
-
实习过程中遇到的技术难点、亮点
-
反问环节、业务介绍
10.24 三面 40min 通过
- 考虑留在字节吗?从哪些方面考虑选择一家公司?
- 讲一讲你是怎么学习前端开发的?遇到过哪些难点?怎么解决?学习周期多久?
- 聊字节实习项目、工作、产出
- 实习工作合作过程中有遇到什么问题吗?怎么解决这些问题?
- 合作过程中的沟通时间占比多少?
- 实习和学业怎么平衡的?
- 职业规划是怎么样的?
- 意向城市
- 反问环节
大疆
8.1 笔试 90min(60min完成)通过
3单选
- 以下判断单链表有环方法错误的是 暴力穷举、找相同尾结点、哈希缓存、快慢指针找交点
- 根据前序和中序选后续遍历的结果
- JavaScript解释器运行到什么阶段可以判断出不需要运行func2 语法解析、词法解析、语义分析、生成字节码
//已知 |
6多选
-
空间复杂度为O(1)的算法有 归并排序、堆排序、冒泡排序、快速排序
-
关于HTTP 1.0/1.1/2.0说法正确的事
- HTTP1.0每次请求需要建立一个TCP连接
- HTTP/1.1支持多路复用
- HTTP/2.0支持二进制解析
- HTTP/2.0支持服务端推送
-
Chrome采用了多进程架构,创建少量tab时会启动独立的工作进程,以下关于线程、进程对比描述正确的是
- 进程安全性更高,tab崩溃不会互相影响
- 进程启动成本更低,可以快速创建tab
- 进程间通信效率更高,更容易支持插件化
- 进程管理更容易,tab独立渲染更快。
-
对于JS原型链描述正确的是
- 任何一个函数都有prototype属性
- 任何一个非null对象都有proto属性,等同于prototype
- 原型链属性查找优先级为:实例****proto___ > 实例本身
- 严格模式中,全局作用域this为undefined
let a = 2; |
-
对于Promise、async、await 描述正确的是
- Promise用于解决回调嵌套过深的问题
- await可以以”同步“的方式实现异步的逻辑
- Promise rejected状态可以变为pending状态
- Promise执行过程中可以取消
5问答
- EventLoop看代码写输出
new Promise((resolve) => { |
- 简述浏览器的垃圾回收机制
- 介绍Vue的双向绑定实现原理及流程
enum WidgetType { |
- 实现一个搜索器,输入一个二叉树的根节点,调用搜索器的next()方法,将返回二叉树中下一个最小的数;调用搜索器的hasNext方法,将返回是否存在下一个数。二叉树节点是无需整数
附加题:
能不能给非可视化方向的同学一点机会…
- (可视化方向附加题)简述WebGL渲染管线
- (可视化方向附加题)简述你了解的3D场景管理数据结构及其实现原理
- (可视化方向附加题)在WebGL 3D场景中,要实现物体阴影效果,请简述实现原理。假设场景区域很大,要如何优化阴影效果。
8.19 一面 60min 通过
- 为什么选择来大疆?不留在字节吗?
- 你会因为什么因素选择一家公司?
- 有其他公司的offer吗?
- 介绍一下V8垃圾回收机制?
- 知道V8垃圾回收机制对比编码有什么好处?
- 什么情况会出现内存泄漏?
- 你编码有出现过内存泄漏或者有排查过吗?
- 怎么防止内存泄漏?排查解决治标不治本
- 用的什么技术栈?有用过TS吗?
- 介绍一下你的实习项目业务
- 项目有什么难点?亮点?
- 多主题的实现你有调研过其他的解决方案吗?这个需求的背景是什么?为什么不调研别的方案?为什么不和组内同时讨论?为什么没去看antd的源码实现?
- 你的项目里面有涉及到权限等级系统的设计吗?
- 让你设计一个省市区的级联选择器你会考虑哪些点?
- 说说你的开源项目?
- 有用过哪些ES6新特性,都说一说
- 箭头函数this指向哪里?在不同的地方执行this执行会指向不同吗?
- const和let带来了什好处?
- 除了块级作用域还有什么作用域?
- 过渡使用闭包会出现什么问题?
- promise出现以前是怎么处理异步编程的?promise有什么好处?编程思路发生了什么转变?会出现什么问题?
- 从哪里看到的大疆招聘信息?了解大疆是怎么样的一个企业?
- 你觉得来大疆做前端你会做哪些工作?
- ↑你觉得你的描述能够吸引人吗?
- 业务介绍、反问环节
8.26 二面 30min 通过
- 讲一讲你觉得最能体现你技术水平的项目
- 聊字节实习工作、项目、负载均衡器项目
- 通过这些项目 / 字节实习,你学到了什么?
- 个人的职业规划是怎么样的?
- 场景设计,单人 / 多人了解,如何做加解密可以做到服务器被攻陷也不会泄漏聊天记录,加解密的流程是怎么样的?
- 为什么想来大疆?有用过大疆的产品吗?
- 你能总结一下你个人的优缺点吗?
- 你的缺点有给你带来困扰和影响吗?
- 你实习的同事对你评价怎么样?
- 不考虑在字节留用吗?
- 你的产品思维怎么样?通过什么事情能够体现?
- 你平时有什么爱好?水平如何?
- 反问环节、业务介绍
8.29 三面 50min 通过
- 了解企业实习工作和业务
- 最近国家约谈互联网大厂和做出整改你怎么看?动机是什么?面对整改你们做了什么工作?
- 为什么是国家整改而不是企业主动去做?
- 你对未来的职业规划包括选择是怎么样的?
- 你会因为什么去选择一家公司?为什么选择大疆?
- 你自己做的最满意的一个项目是什么?有什么特点和难点?
- 自己做的项目和企业项目的区别是什么?实习有什么收获?
- 你怎么看待大疆?和互联网企业不太一样,有什么特别的想法吗?
- 你也有提到有用过大疆的产品,感觉体验怎么样?有什么功能建议点?…讨论大疆产品和爱好
- 如果发了offer让你来?你觉得你需要提前做什么准备?
- 你有遇到过比较大的挫折和困难吗,是怎么面对的?
- 你的人生目标是什么?最大的优缺点是什么?
- 有过让自己后悔的决策吗?
- 字节和大疆都给你offer了你会怎么选择呢?
- 反问环节、企业文化价值观交流
Shopee
7.19 提前批笔试 120min 通过
-
Symbol相关
-
Proxy相关
-
instance of相关
-
%、rem、vh、px相关
-
liunx建立新进程的命令
-
状态码504的含义
-
前端安全,SQL注入、XSS攻击、CSRF攻击、HTTPS、CA相关
-
IP、子网掩码算广播地址
-
正则相关,选一个正则不能进行的操作
-
选一个会触发重绘、回流的情景
-
不给cookie设置有效时间,它的生命周期是?
-
visualbility:hidden、display:none 是否触发重绘回流
-
使用虚拟DOM的好处
-
CSRF防御方案
-
可能被XSS注入的标签
-
position定位类型
-
CORS解决跨域请求头设置 带cookie
-
算法:
- 找出最后一个只出现一个的字符
- ACM的一道题 仓库拣货,二维数组标记几个点为货物,经过货物四周即为拣货成功。从入口开始,需要转向几次才能拣完所有的货。
- 相交数组,找出两个数组重复的项
7.25 提前批一面 50min 通过
- 重绘重排及优化点
- CSS 定位方式有哪几种 分别有什么区别
- 虚拟DOM的优缺点
- TCP连接可靠性
- TCP是否有数据校验
- TCP流量控制、拥塞控制
- Vue data为什么是个函数
- 深拷贝、浅拷贝 为什么会有这种概念
- JS基本类型、引用类型
- V8垃圾回收描述
- 事件委托、事件代理
- 算法:括号匹配、二叉树后续遍历
- 反问环节
8.1 提前批二面 54min 通过
- EventLoop,写输出和思路
setTimeout(() => { |
- 闭包、块级作用域,写输出和思路
var result = [], |
- 手撕防抖,支持立即执行
- 前端性能优化,聊了静态资源上cdn,HTTP缓存,接口聚合,骨架屏/loading,DNS预解析,preload,prefetch,webpack优化:Compress、Tenser、HMR、多线程打包、开启缓存、DLL
- 实现一个组件,无限滚动,要求刷新性能尽可能地好,聊了虚拟列表固定大小和不固定大小分别怎么实现
- 聊实习项目、亮点、遇到问题、怎么解决
- ES6 - 最新版本有什么新特性
- Vite了解吗,聊一聊,和webpack有什么区别,为什么比webpack快
- 反问环节
8.4 提前批HR面 20min 通过
- 自我介绍
- 字节实习工作内容
- 做项目遇到什么问题,怎么解决的?
- 会因为什么选择一个公司?业务?薪酬?大厂背景?
- 对什么业务比较感兴趣呢?
- 用三个词形容自己
- 职业规划,有考虑考研吗?
- 自身有什么优缺点?
- 手头还有什么offer?
- 有什么兴趣、爱好?
百度
8.19 提前批一面 80min 通过
-
介绍企业实习项目
-
项目并发量级这么大,是怎么承受高并发的?怎么更新版本?
-
前端层面怎么设计可以减轻服务端压力,承受高并发?
-
介绍一下HTTP缓存
-
CDN有什么好处?原理呢?
-
离线包有了解过吗?
-
你的safeRouter是怎么封装的?怎么做的?
-
VueRouter的原理是什么?
-
个人项目的权限系统是怎么设计的?如果更复杂的权限系统你会怎么设计?
-
封装一个通用的根据权限渲染不同内容的组件你会怎么设计?
-
浏览器的时间循环机制描述一下?
-
Node事件循环和浏览器有什么区别?
-
遍历一个对象有什么形式?
-
for in有什么缺陷?怎么避免?
-
for of可以遍历对象吗?怎么让它能遍历
-
v-model的原理
-
怎么实现多个位置绑定同一个v-model?
-
vue组件传值有哪些方式?尽可能多地说
-
工程化了解过吗?Webpack的Loader和Plugin有什么区别?
-
Plugin可以实现Loader的功能吗?
-
拆包有了解过吗?路由懒加载有了解过吗?讲一讲
-
讲一讲你了解的数据结构
-
链表的头插法、查询、有序插入时间复杂度是多少?
-
二叉树的查询复杂度是多少?
-
快排的时间复杂度是多少?
-
算法
-
数组去重
- set
- 手动
-
爬楼梯
- 迭代
- 递归
- 缓存 + 递归
-
-
反问环节、业务介绍
8.21 提前批二面 80min 通过
-
聊开源项目
-
聊企业实习项目
-
项目有什么难点?亮点?
-
实习有什么收获?
-
实现一个repeat函数,第一个参数是字符串,第二个参数是字符串重复多少次后返回,例如repeat(‘str’,2)返回strstr
- 实现这个函数你要考虑什么问题?
- 一个字符串的最大长度是多少?
- 除了问人,可以查文档等各种方式去查、写代码去验证,你会怎么做?(第二个问题)
- MDN文档中文版和英文版有什么不一样吗?可以看一看
- 你现在写的是迭代的方式,你可以改成递归的方式吗?
- 你一般怎么对代码进行debug?
- 你现在的时间复杂度是多少?可以优化吗?
- ok,优化到logn了,logn的迭代形式要怎么改呢?
-
反问环节、业务了解
8.24 提前批三面 30min 通过
-
在字节转正了吗?
-
后续职业规划是怎么样的?考虑考研吗?
-
聊字节实习项目
-
实习有哪些成长?
-
我看你学的是物联网,还获得了不少奖项和知识产权,为什么选择做前端呢?
-
你会因为哪些因素选择一家公司?
-
后续考虑在深圳发展吗?
-
算法设计
1000支疫苗,有一支变质了,可以通过试纸检测,反应时间需要一小时,如何在一小时用尽可能少的试纸找到变质的疫苗。一张试纸可以滴多支疫苗,一支疫苗也可以滴在多张试纸。
- 将疫苗变成m * n矩阵,m * n = 1000, m + n 尽量小,需 m + n 张(mn对应行列)
- 将疫苗进行二进制编号,使用10张试纸,对应位为1则滴,不为1则不滴,通过变红的试纸反推编号。
-
反问环节
滴滴
7.31 提前批一面 70min 通过
- 聊负载均衡器 实现、算法(个人项目)
- Node进程间通信实现,其他进程间通信方式
- 实习项目介绍,业务理解,亮点
- Express和Koa的区别,中间件的实现方式 compose
- 实现一个compose
- compose函数看代码写输出 带try catch和抛错
- 讲讲对webpack的理解
- vue2和vue3的区别
- vue组件传值$attr
- Vue的插槽有哪几种类型,分别有什么区别
- 手撕最长公共子串 LeetCode 1143 middle
- 手撕深拷贝
- 判断数据类型的方法
- 手撕发布订阅模式
- 反问环节
7.31 提前批二面 70min 通过
- 尽可能多的写出div中img垂直水平居中的方法。要求至少有一种方法是使用flex布局。其中div宽高300px,img宽高100px
<div> |
- 画一条0.5px的线
- 宏任务、微任务、EventLoop
- 看代码写输出
setTimeout(() => { |
- 尽可能多的写出数组去重的方法
- 写一个每隔一秒输出0、1、2、3、4、5的方法
- var const let 块级作用域
- 写出console的结果
var f = (function() { |
- 闭包
- 任选一种排序方法进行实现
- 浏览器url从输入到显示出页面的流程(带缓存)
- 强缓存、协商缓存
- link标签引入css会阻塞dom渲染嘛
- async和defer的区别
- node EventLoop和浏览器有什么区别
- 进程间通信domain socket具体实现流程
- 箭头函数和普通函数有什么区别
- 小程序的运行机制(双线程、JSB相关)
- redis怎么实现分布式锁
- 你认为自己的定位是怎么样的 有什么优缺点
- 你认为别人眼中的你是怎么样的
- 反问环节
7.31 提前批三面 70min 通过
- 自我介绍爱好、特长、特点、亮点、个人定位
- 大学中的成长历程、怎么接触技术、学习和发展历程
- 实习项目和做的事情
- 未来个人职业规划
- 聊负载均衡器项目(个人项目)
- 为什么会去做技术分享、目的、怎么选题(字节部门技术分享)
- 再让你做技术分享你会选什么题目
- 大学里最有成就感的事情,为什么?
- 简历上六个项目挨个聊
- 物联网工程专业和计算机的关系和区别
- 除了前端还有没有学过别的方向的技术
- 最擅长的专业课是什么
- 你怎么给一个非专业的人介绍计算机网络
- 计算机网络为什么要分层
- 你的数据结构和算法怎么样 有没有刷题
- dp了解吗 讲一讲
- 写道题吧 对象的key全部驼峰转下划线 要求递归 可限制深度 dfs和bfs分别怎么实现
- 反问环节
美团
8.16 一面 70min 通过
- 看代码写输出
var name = "windowsName"; |
- 说说对闭包的理解,有哪些应用场景
- 实现一个方法
f(a) -> [a] |
- 看代码写输出
const list = [1, 2, 3]; |
- new的过程中发生了什么
- 说一下Promise的应用
- async await是什么的语法糖
- Promise有哪些状态,可逆吗?
- 讲讲Vue的双向绑定原理
- 数组的双向绑定相关,Vue2直接更新数组某项会进行视图更新吗?
- 了解跨域吗?讲一讲有哪几种方式
- TCP三次握手四次挥手,为什么三次和四次,如何保障可靠性
- 手写快排
- 跨端方式交流
- 反问环节
8.24 二面 45min 通过
-
可以提前过来实习吗?
-
字节留用情况?
-
更看重公司的哪些因素?
-
有考虑考研吗?
-
聊字节实习项目
-
介绍一下你的HTTP缓存文章写了哪些内容
-
ETag是什么?常见的算法有哪些?
-
负载均衡器项目是怎么实现的?
-
一致性哈希算法原理是?
-
最有成就感的项目是哪一个?
-
介绍一下虚拟DOM,有什么优缺点?
-
虚拟DOM的底层patch、diff有了解过吗?
-
Vue的diff算法,Vue2和Vue3分别是怎么样的?有什么区别?
-
Vue的双向绑定原理是怎么实现的?
-
算法
- 计算一个数组最长连续自然数个数,要求值连续,位置没有要求
输入 {100,4,200,1,3,2}
输出 4
示例2 输入 {200,201,202,100,4,200,1,3,2,204,203}
输出 5- 看代码说输出,会报错吗
let A = () => {
this.a = 100;
return {a: 200}
}
A.a = 300
A.__proto__.a = 500
A.prototype = { a: 600 }
a = new A()
console.log(a.a) -
箭头函数和普通函数有什么区别?
-
prototype和proto 有什么区别?
-
能说一下HTTPS握手、加解密流程吗?
-
让你最有收获的专业课是什么?
-
你觉得自己有什么优点和缺点?
-
除了前端还学习过什么别的技术吗?
-
你的知识产权(发明专利、实用新型专利、软件著作权)是怎么产生的?
-
反问环节
9.1 HR面 20min 通过
- 你的专利和软件著作权是通过什么机会去产出的?第几作者呢?
- 看你项目经验很丰富
- 你在字节的工作感受如何?压力大吗?
- 字节是否会给你留用offer?
- 你还有投递其他那些公司?
- 你会因为什么选择一家公司?
- 你觉得你做的最有成就感的项目是哪个?
- 你觉得你做的最难的项目是哪一个?难点在哪里?
- 你的职业规划是怎么样的?
- 你有哪些优点和优势?
- 反问环节
拼多多
7.25 提前批笔试 90min(30min完成) 通过
- 递归实现和非递归实现哪个更快
- TCP和UDP的区别是
- 实操HTML CSS
- 实现一个异步加载js函数返回一个promise,成功resolve,失败/5s超时reject
- 手写Promise.resolve和Promise.reject
8.3 提前批一面 55min 通过
-
手撕括号匹配
-
实现一个promiseTimeout方法,接收两个参数,第一个参数为promise,第二个参数为number类型;该方法的作用为
- 若promise在第二个参数给定的时间内处于pending状态,则返回一个rejected的promise,其reason为new Error(‘promise timeout’)
- 若promise在第二个参数给定的时间内处于非pending状态,则返回该promise
-
浏览器任务循环,看代码写输出
async function async1() { |
- 看代码写输出
// a.js |
- Vue双向绑定实现原理
- Vue.$nextTick实现原理,是宏任务还是微任务
- Vue scoped实现原理
- 跨域的实现方式
- 简单请求复杂请求 Option预请求
- 从url到页面渲染间发生了什么
- 重绘、回流,优化方式
- HTTP缓存 强缓存、协商缓存
- 手写Reac Hookst计数器(自增),闭包陷阱
- 无限滚动场景,虚拟列表设计
- 单点登录
- 前端安全CSRF
8.7 提前批二面 50min 通过
- 你觉得Vue是个怎么样的框架
- Vue DSL是个什么样的模式
- 什么是MVVM?
- MVVM三层分别做了什么事情
- Vue中组件是什么概念?什么场景你会去封装一个组件
- Vue组件数据通信有什么方式?分别有什么区别
- Vuex异步和同步操作分别用什么,区别在哪里?
- 算法题:给出一个数组中有多个对象,对象的属性有用户的id和操作的时间,给出了时间的起止,输出一个数组,数组中的对象为操作次数和相同操作次数的用户数,按操作次数从大到小排列
- for in和for of的区别
- const、let和var的区别
- 什么是块级作用域
- 垃圾回收做了什么事情
- 如何让函数作用域外的访问函数内的变量
- 什么是闭包,手写个闭包
- this在JS中是什么
- 箭头函数和普通函数有什么区别
- 怎么改变函数的this指向
- 说一下flex布局,有哪些常见属性,分别用来干吗
- 简单写个flex布局
- CSS有哪些单位 有什么区别
- rem有什么使用场景
- 浏览器拿到document后浏览器的渲染流程
- 什么情况会阻塞渲染,怎么优化
- async和defer有什么区别
- 怎么手动测量渲染时间
8.16 提前批三面 70min 通过
- 算法
/* |
- 实现一个HardMan
HardMan("jack")输出 |
- 介绍项目,难点、亮点、问题、怎么解决
- HTTP 强缓存、协商缓存
- localstorge和HTTP缓存有啥区别,你会怎么选择缓存方案
- 缓存位置在哪儿?策略?
- 反问环节
8.23 HR面 20min 通过
- 自我介绍
- 职业规划
- 后续在哪个城市发展
- 爸妈同意吗?有没有女朋友
- 会因为什么因素选择一家公司
- 有什么感兴趣的业务方向
- 期望薪资是什么水平?
- 为什么选择做前端开发?
- 可以过来实习嘛?
- 工作强度是否了解过?是否能接受?
掘金:前端LeBron
知乎:前端LeBron
持续分享技术博文,关注微信公众号👇🏻