离职原因
Just let it go~
offer 情况
最终选择了重庆吉利,薪资肯定和北上广肯定比不了。四五月份的时候就很想走了,各中原因导致战线拉得很长。这个期间也经常问自己我对未来的职业诉求到底是什么?为了达到目标,我将要付出怎样的努力?
- 重庆腾讯云 offer
- 美团 offer,base 北京
- 吉利 offer
- 蚂蚁因 HC 的原因无缘
「面试造火箭」这个过程也异常煎熬;这个期间可以反馈出自己很多问题从而查漏补缺,也可以从很多经验老道的前辈学习。无论是基础知识、算法、系统设计都能反应出一个人的靠谱程度。
从技术角度:要求高一点需求对项目有一定的架构能力,需要建立起一个前端工程师应该有的能力模型,如工程化/监控/性能/质量保证都有一定的认知。
从业务角度:作为技术我们应该关注业务指标 → ROI → 落地的业务数据 → 归因。技术本身是产品很小的一环,最终给我们带来收益 💰 的还是业务。多多思考怎么用技术为业务赋能,多做一些有意义的事~
字节-内容经营分析方向(二面挂)
一面
最近两年的业务,项目的技术栈?
-
- 避免重复安装包,因此减少了磁盘空间的占用,并降低了构建时间;
- 内部代码可以彼此相互引用;
- 减少重复配置
可视化平台一些相关介绍
业务中 Node 的使用,有什么是自己主导的
闭包(闭包的使用场景,闭包的执行和当前的函数机制。我没太明白这个啥意思)
GC(新生代、老生代、标记清除)
作用域提升聊了点
TCP/UDP 的区别
http 的缺点,然后顺势提到了 https,讲一下自己了解的加密算法
CSS 三栏算法的实现
对 React、Class 组件和 Function 组件的理解以及生态
对 V8 的理解
算法题:自定义 Myset 的实现,需要 o(1),可以借助辅助 Map
二面
面试官很和蔼,一上来没问技术基础,问的项目上关于 Cookie 共享的
- 项目 Cookie,同域共享
- 手写 curry
- 手写 Promise
小结
二面挂了,从面试内容来说不是很难,没有考很难的算法。但手写代码时候卡卡的,关于柯里化和 手写 Promise 的手写其实都有看过的…(然后柯里化的实际场景我确实也没太感受出来,我理解柯里化的最强 buff 就是利用闭包做缓存?
虽然都写出来了,但是费了挺大劲的 =.=。所以 coding 前还是要自己动手实践一下。
神策-营销云
一面
CSS 垂直居中布局
position 的属性
React Hooks 常见的 Hooks
- useCallback 和 useMemo 的区别
- 提了下我还没怎么搞明白的 useImperativeValue 😂
React 的 Key 作用(我回答的两个
- 做 diff 算法的时候,会通过 key 和 props 来判断是否更新
- 值得注意的是,在数组的情况下。React 会用 key 作为增删改的标志,所以如果 key 一致,可能会引起数据不对?(比如做一个todo-list)我这里回答得不好 ☹️
兄弟组件如何传值(我先简答总结了下个问题的考点:状态管理,然后可能多的去回答:
- 通过数据流管理工具 Redux 之类的
- 使用 context
- 使用 useReducer
- 让父组件代理传值
- 使用 eventBus
- 大炮打蚊子:使用 webscoket,当然这只是开个玩笑 😂
手写 deepClone
- 数组有些小问题,面试官提醒写出来了
手写 PromiseAll
简单聊了下 Eventloop
async/await 的原理
- 我先说是 Generator 的语法糖吧。再说:有人的说法不是 Generator 的语法糖,我也不知道该怎么回答你 😂,那你的理解呢?
- 面试官:我们知道 Generator 需要调用 next 方法才能有返回值,await 对这个进行了封装,其实想问你这个。
内心OS:我好真诚啊 😂…后续查了资料,其实可以用 Generator 手写出 async/await
关于项目的一些问题:性能守卫平台/低代码平台,其实我很想聊聊微组件市场
- 我:您知道模块联邦吗?
- 面试官:太了解了(感觉他有很好的实践?
- 我:哦微组件市场实现的效果和模块联邦一致,但是最终技术方案没有使用模块联邦…然后没聊了….😂
两家公司都面到了 Promise
二面
- 聊项目,性能守卫
- 「性能守卫」的意义
- 设计详情 确定性与不确定性
- 聊项目,微组件市场
- 设计详情
- 数据情况
三面 - 交叉面
- 最有压力的一段时间
- 马化腾来了有个重要的需求,核心开发出车祸了着急上线怎么办?
- 最自豪的事
总结
我居然被交叉面挂了,原因
- 项目经验相对简单
- 缺少做成一件事的决心 ??
三面的面试官一直在强调我 5 年的经验…再加上我看起来确实很显小,难受…
途家(1/2/3 面)- 没有消息
- 基础
- 简单聊了下项目
- RN 是如何做性能优化的
- QP 包瘦身
- 预加载
- 接口拆分
- 使用 FlatList 进行性能优化
- 从代码层面进行 SCU/Memo 处理
- 如何解决 RN 的弹窗层级关系
- Webpack 的构建优化
- 如何设计一个监控系统
小结
一面的小姐姐很喜欢问性能优化的事,怎么说呢,性能优化确实是前端应该关注的点,性能优化在网上一搜一大把 ,目前我主要是做中后台系统的建设,关注的点在于:
- 在业务逻辑复杂的场景下减少平台使用者出错的可能性,提高系统易用性
- 保证数据的正确、完整性以及数据私有性
FreeWheel
一面
- 简单聊了下「微组件」市场,针对可能出现的问题聊了下
- 这个面试官不错,其他人还得给他解释半天微组件市场是啥… …
- 聊了下对 C 端和对 B 端开发的看法,如何有些地避免 bug
- eslint 从某种程度可以避免
- 严格的 CR
- 单测和 E2E 测试应该也可以有效地避免(这个我没回答上来 😫)
- 单测的执行情况,会要求覆盖率吗?
- 不强制要求,一些通用的工具函数会做单测,另外就是一些关键业务做单测
- 确实还有 E2E 的测试项目,但那个我不是很熟悉
- 针对 CI/CD 的流程进行了一些简单了解
- UI 库怎么打包的/怎么发版的?
var、let 和 const 的区分?😅
- 如何冻结一个常量对象?Object.frezee(),面试官表示可以,我说实际使用得不多 😅
如何 deepClone 一个对象(如何判断一个数组,哎)
如何浅拷贝一个对象
React:SCU React.PureComponent, React.memo
React 常用的 Hooks / React 兄弟节点如何传值
自定义 Hooks 值得注意的地方
如何发起一个请求(xhr 和 fetch)
- 为什么要让我描述原生的 xhr?(呜呜呜,我就XHMHTTPRequest 对象。然后那个 xhr 做一些状态值的监听?我真的记不住那个了 😅,其实我还想说值得注意的是 IE 要做兼容处理….就 面试题.next() 了
- fetch 的请求可以中断吗?(可以,利用 AbortController 高版本的 Node 天然支持,浏览器端需要 polyfill 处理
扯到了异步流程控制上,除了 Promise 还有哪些方案?我说 async/await、Generator?async/awai 返回的是啥?我想打死我自己,天天在 async/await 函数后面写 .then .then 这不是一个 Promise 吗?!!!!我答的 Generator ,可以再给我一次机会狡辩吗?😂
如何实现继承
- extends
- 原型链
- 构造
- 寄生
- …下次可以谈一下 Object.create 这个
还有一些其他的,其实就是这些方法组合排列…
二面
项目
三面
- hashMap 的底层原理
- Leetcode 一个 medium 的题
- 如果设计一个秒杀系统
四面(三个外国人,我选择死亡)
- hoist
- class 是否可以被 hoist
- closure
- how to detect the performance
- RBAC 模型
- unit test / e2eTest
- why change this position
挂了,相互听不懂,视频面试, Mac 本上用 MircoSoft 的软件。还共享不了屏幕,没写代码
美团(1/2/3/HR 面)
一二三,怼项目,一面有算法题:关于二叉树的回溯
三面交叉面,聊了些和后端相关的东西
- HR 面试
- 结婚没?打算去台湾吗?
- 项目中的难点
- 你有什么核心竞争力?
极米科技
一面
- 极端情况下 FC 和 ClassComponent 的性能
- 数据是如何通知视图的变更
- React 和 Vue 或者框架的优缺点
- React Hooks 的优缺点
- ReactClass 的优缺点
我从函数式编程和面向对象编程分别说起,然后基于自己的理解
二面
聊项目
没消息
小结
一面面试官挺有意思,具体怎么有意思不详细说了。一开始面试的时候以为自己遇到了一个青铜,结果后来发现是一个王者 👑
阿里-重庆蚂蚁
一面
- 简单聊了下项目
- CSS 盒模型
- 触发 BFC 解决外边距合并的问题
typeOf
和instanceOf
的区别- 浏览器缓存机制
- http 协议 / 跨域处理
- 对 B 端和 C 端的理解
- 对统一工作流的认识
- 俩算法(40 分钟)
和面试官关于项目、技术什么的狂扯了将近两个小时
二面
- 业务中遇到重难点(编辑器/视频上传效率问题)
- 技术项目
- qiunkun 是如何解决微应用切换资源消耗的问题(思路完全正确! ~😄)
- 技术项目中问题的解决思路
- 团队中的角色/有没有开源项目(我说自己折腾的东西拿不出手 😂
- 有没有关注新的技术/趋势(esbuild/next)啥的
三面
完颜大佬
- 前端技术深广度
- 前后端都略有涉及
- 一些业务场景数据相关
- 业务理解度
- 团队协作能力
许愿蚂蚁 OC
重庆腾讯云
一二面
- TCP 三次握手
- https 请求的过程
- 了解 RPC 吗?
- React 状态管理相关
- Redux/Context/Recoil
- 算法
- 位运算
- map
三面
- 怼项目
- Redis 和 MySQL 的区别
- 团队的情况,自己的一个角色
- 未来规划
四面
- 问了些工作的问题,自己怎么去处理的