字节商业化-CRM 三面挂
timeline
09.09 一面 - 50mins - 次日过
09.18 二面 - 80mins - 秒过
09.19 三面 - 50mins - 次日挂
一面
1、JS
- JS基本数据类型分类、引用类型有哪些
- 为什么要分为引用类型和基本数据类型,区别在哪,他们有什么不同
- 你刚才说到栈空间和堆空间,有什么区别吗?都有啥作用
- 为什么要分堆空间和栈空间
- 引用类型放在堆空间有什么优点吗
- 堆和栈在这里边是什么
- JS为什么是单线程,有什么好处
- async和await实际上是promise的语法糖对吧,可以等效转换过去,怎么转换?
2、浏览器
- 对事件循环有了解吗?说下浏览器中JS的事件循环是什么
- 常见的宏任务和微任务有哪些
- 浏览器和Node中的事件循环有什么区别
- 事件循环输出题
async function async1() { console.log('async1') await async2() console.log('async1 end') } async function async2() { console.log('async2') } console.log('script start') async1() setTimeout(() => { console.log('settimeout') }) new Promise((resolve) => { console.log('promise1') resolve() }) .then(() => { console.log('promise1 end') }) console.log('script end')
3、框架
- Vue双向绑定是如何实现的 - 还要答出模板解析里对指令的解析
- defineProperties和Proxy的区别,Proxy优势在哪
- 模板编译发生在哪个阶段
- Vue文件为什么能渲染到浏览器上,说一下过程
4、场景题
- 封装Popover, 可以用伪代码
- 实际情况下可能气泡里会有多种组件,或者一些影响性能的列表,怎么处理
- 我们在场景下一般用闭包渲染,vue里你怎么做
5、设计模式
- 手写观察者模式
- 观察者模式和发布订阅很像,但有区别,是什么
- 观察者模式也可以不必广播,怎么做
6、工程化
- 打包大小从8M压缩到800kb是怎么做到的,说下你当时的详细过程
- 这边代码分割是写到哪个配置项里的?压缩呢?
- 说下Webpack原理
7、反问
- 框架可以多深入了解些
- Webpack的插件体系是业界设计地非常不错的,建议去学习下
- 字节这边基本更多是用的React
二面
1、实习
- 百度实习经历 为什么用localStorage存草稿,你们小程序能用localStorage吗?window.localStorage还是localStorage?为什么用防抖不用节流;图片懒加载怎么做的,分片加载细节优化前后的性能指标是如何衡量的,都有哪些指标,怎么看的有线上观测过这些指标吗,还是本地自己debug
- 美团实习经历 动态表单怎么做的有多少个组件?目前有哪些自定义组件?表单联动还有联动校验是怎么做的
- 说一个两段实习中碰到的比较难和复杂的问题,怎么解决的 。说下React Native 1:1复刻Swiper.js的Effect-cards特效细节,位移分层是怎么做的?怎么计算的?两层位移都关联了哪些属性?他们相互之间有关联吗?对位移的分层处理最终是要输出什么?
2、性能优化
- 指标有哪些,怎么拿
- 首字节怎么算的
- Performance.now()在什么时候拿的
- FCP、FMP、FP都是怎么计算的
- 说下你的FMP计算例子,权重是怎么选择的
- 怎么标注的meaningful dom?
3、Vue框架
- 介绍Vue中的slots
- slots原理
4、手撕
- 完整版本号排序,规则为:6.2.0 < 6.2.1 < 6.2.2-alpha.1 < 6.2.2-alpha.2 < 6.2.2-beta.1 < 6.2.2-cr.1 < 6.2.2
5、交流
- 校招能通过的话,能不能来实习
- 前端怎么学的
- 最近在学什么
- 为什么要换公司
5、反问
- 优秀的前端工程师、工程师的素养
- 根据面试表现,对我未来发展和提升的建议
三面
1、实习
- 美团 做了哪些事主要用的什么技术栈为什么不用Vue3
- 百度 用的技术栈;资源上传校验怎么做的;图片懒加载、列表分片加载细节,分片是前端实现的还是后端实现优化后的提升,有没有具体指标,指标是线上拿的还是开发时候自己console.log的;从哪里看的这些指标,性能监控上有哪些指标?FP、FCP和FMP是什么,有什么区别,你怎么计算;说下思路你刚才说到给不同的模块分配权重,你给权重的定义和分配规则是什么,怎么分配的;除了这些还会你考虑哪些额外指标;小程序原理;我看到你小程序里用了localStorage,这个是自己实现的嘛?怎么调用的?你们那边用的框架支持?
- 挑一个实习期间遇到的最大困难,详细讲一下你是怎么解决的
2、框架
- 说下你对Vue的理解
- Vue2和Vue3的区别
- Vue的React的区别
- 如果让你在Vue和React之间做技术选型,你会怎么选,说下你的思考过程
3、项目
- 前面你用了列表分片去优化图片列表的加载,如果现在有上万条张甚至十多万张图片,怎么应对
- 虚拟列表的本质
- 自己项目里是用的插件还是自己实现的,说下自己实现的过程
- 不定高虚拟列表怎么做
- 自己实现的时候有遇到表现上的问题吗,怎么解决的
4、性能优化
- 你的实习和项目里涉及到了很多性能优化经历,那除了刚才的提到的那些性能优化方法,你还知道哪些方法,如果让你做一个线上性能监控体系,怎么做
5、开放题
- 未来规划
- 你感觉自己的前端水平如何
- 为什么换公司
- 还想学一些什么
5、反问
- 部门氛围
- base地
- 现在前端是否有必要早点学Rust
- 感觉后端在业务上可以比前端走得更远更深,技术上大多时候也更难一些,想问下对这个的看法
- 对我的建议 可以感觉到基础比较好,有做过一些准备(不详的预感),对框架有自己的理解作为应届生来说,现在的知识还是一个一个点,后面最好是从点发散,构建出一个体系网络
6、现场感谢信 —— “也感谢你的面试”
还是太菜了
#你都收到了哪些公司的感谢信?##秋招##实习中的菜狗时刻#