前端面经系列
腾讯 CDG 闭环广告电商
前端一面
- 自我介绍
- 项目问题:balabala......15分钟
- 说一下 Promise
- 做题1:手写 Promise.all
- 浏览器的渲染过程,尽可能的详细说一下
- HTTPS
- 对称加密和非对称加密的区别
- react hooks 原理
- react 的性能优化手段有哪些
- 做题2:验证外星语词典
做题做得太久,面试官提示了也没做出来,挂了
阿里巴巴国际速卖通终端技术
前端一面(电话面试)
- 请做一下自我介绍
- 深挖项目30分钟:balabala......
- 项目做的一些优化
- b端和c端有什么区别
- 你们状态管理用的是什么? 它的原理
- 微前端整体的方案?微前端解决了什么问题?
- 你可以说一下微前端的部署流程吗?
- 没有反问,直接结束了
字节跳动飞书零代码/低代码平台
前端一面
- 自我介绍
- zustand 状态管理的库,当初为什么使用这个,有什么考虑吗?
- 刚刚提到了 zustand 的依赖收集是怎么做的?
- redux 和 zustand 区别,差异
- 刚刚提到了不可变数据,可以介绍一下不可变数据吗?
- 刚刚提到了浅拷贝,浅拷贝大概是一个怎么的过程?
- 项目中用到 InversifyJS 是干嘛的?
- 项目的性能做了哪些?针对性能优化的每一个点展开聊一聊
- 项目问题:balabala...15分钟
- React 常用的 hooks
- 了解 React 高阶组件吗?作用是什么
- 内存泄漏怎么排查
- 你们有没有做数据的埋点?
- 你们现在衡量一个页面加载性能的指标都有哪些?
- 可以介绍一下从浏览器输入url之后,页面的加载过程吗?
- SSR 的原理
- 有了解事件冒泡和事件委托这些吗?
- 了解过哪些设计模式吗?
- 代理模式有了解过吗?
- 可以讲一下防抖和节流的区别吗?
- 时间差不多了,做两道题吧
- 做题1:写一个函数,输入一个字符数组, 转化为如下格式:
输入 ["a","b","c","d","e","f","g"]
输出 {"a":{"b":{"c":{"d":{"e":{"f":"g"}}}}}}
- 做题2:二叉树最近公共父节点
- 反问:
- 技术栈:react
- 业务:低代码平台,用飞书低代码搭一个系统,搭页面。balabala
- 工作节奏:正常的吧,弹性上下班
美团 Keeta 境外技术
前端一面
- 找工作的背景和诉求
- 目前是在职还是离职
- 确认一下工作经历
- 当前绩效如何
- 项目问题:balabala......20分钟
- 你是这个项目的主要负责人吗?
- 那你这个项目有参与设计吗?还是说主要做功能的实现
- 项目问题:balabala......10分钟
- react 的源码有读过吗?
- 说一说 fiber 节点大概是一个怎么样的结构
- 用类组件多还是 hooks 多一些
- hooks 的原理有了解过吗
- 说一说 你对 promise 的理解
- 做题1:简单考察一下基础,看代码输出结果
console.log(1)
setTimeout(() => {
console.log(2)
Promise.resolve().then(() => {
console.log(3)
})
})
new Promise((resolve, reject) => {
console.log(4)
resolve(5)
}).then((res) => {
console.log(res)
})
setTimeout(() => {
console.log(6)
})
console.log(7)
- 做题2:删除链表的节点
- 有在面试其他公司吗?都到什么阶段了?
- 反问:
- 技术栈:React
- 业务:海外业务
拼多多 TEMU
前端一面
- 自我介绍
- 讲一讲项目里面你觉得比较难的是什么?
- 项目问题:balabala.....10分钟
- 做题1:事件循环,看代码输出结果
- 微任务是什么,宏任务是什么
- 那你讲一下浏览器里面的事件循环
- 做题2:手写一个 react 自定义hook,useEffect 第一次不执行
- 做题3:手写实现 instanceof
- 做题4:写一个函数,传入一个数组,一个最大并发数, 实现类似 Promise.all 的功能
- 做题5:写一个函数,该函数将传入json格式的虚拟 DOM 对象转换为真实的 DOM 结构
- react 更新机制有了解吗?
- flushSync 的作用
- setState 是同步还是异步?
- setState 为什么是批量更新
- 项目的性能优化,都做了什么?具体都看哪些指标
- 模块联邦是什么?
- npm包和模块联邦的区别是什么?
- 项目问题:balabala.....10分钟
- 反问:
- 技术栈:react
- 业务:海外电商 temu
- 工作节奏:周一到周五,周六休息,周天上班。
腾讯音乐-QQ音乐 Web 商业化
前端一面
- 自我介绍
- 先问一些基础问题吧:你在前端监控有过一些了解吗?你们是自研的,还是用开源的
- 说一下错误监控
- 如果你要做这个监控,你要上报这些错误,你会什么时候去上报?或者用什么方式去上报
- 遇到线上的一些问题,你一般会怎么排查呢?有没有总结
- 项目问题:balabala......
- 你们是怎么做同构的呢?
- 说一下依赖注入?你觉得这种写法最大的优势是什么?什么场景下比较适合依赖注入
- 你在一些开源框架里面,你有见过 类似的依赖注入的设计吗?了解过吗
- react 为什么要分成 react 和 react-dom 吗
- 有了解过微前端的原理吗
- JS 隔离:它怎么实现隔离的
- xxx 平台有做一些性能的监控吗?监控了哪些点、哪些数据、哪些指标衡量?
- 有写过后端代码或者nodejs吗?工作上有用过node吗?
- 说一下 node 的优势和特点
- 问个比较简单的后端问题:node 后端怎么支持跨域 cors,说一下跨域的响应头
- 浏览器的微任务和宏任务的理解
- 说一说你对 Promise 的理解
- CSS:will-change 的作用
- 项目里的优化是怎么做的
- 做一道编程题哈:合并两个有序数组
- 反问:
- 主要做哪些业务:商业化的话,主要是会员业务,QQ音乐绿钻这些相关的业务,一些活动页卖绿钻的。
- 工作节奏:上下班,早上10点半,晚上8点过下班
字节跳动 TikTok 国际供应链
前端一面
面试官一边面试,一边做面试记录
- 简单的自我介绍
- 项目问题:balabala......15分钟
- 最后一个关于你们这个项目的问题吧?如何衡量你这个项目做得好?你们有什么衡量标准吗?
- 然后你在这里面承担的是什么角色?核心开发者还是项目负责人
- 你觉得 react 为什么出现 hooks
- 在 react 实现跨组件的联动或者传值,你有什么方案?
- 它们的传值差异是什么?各自的应用场景
- 为什么选择 zustand ?或者它的底层原理是什么?
- 行,那 zustand 的底层原理是啥?
- 做题1:事件循环相关,看代码说结果
- 项目里的卡顿问题是怎么解决的?
- 前端工程化解决的是什么样的问题?你可以展开说说你的理解吗
- 为什么要自定义 webpack 插件
- webpack 插件机制的原理吗?
- 做题2:数组转成树
- 做题3:最长不含重复字符的子字符串
- 个人发展的问题:你未来的职业规划是怎么样的?
- 反问
- 技术栈:react、状态管理根据技术选型
- 业务:国际化电商的供应链和物流,b端中后台系统的一些业务,货主平台、提供一些商家的b端管理系统,也可能涉及到一些移动端的开发,为中后台提供一些、运营、产品提供一些配置或者策略干预能力。
- 工作节奏:8点左右下班,忙的话 9-10点。
- 人数:前端总体的话,供应链和物流整体 50 人,物流方向将近20人
前端二面
- 先请您做一个简单的自我介绍
- 针对你比较有亮点的项目展开聊一下吧
- 项目问题:balabala......10分钟
- 你们的单元测试是怎么做的
- 假设你来到我们这边的团队,有一个性能优化的专项,你整体的一个思路是怎么样的?
- 你们做性能优化,指标是哪一个?核心指标?
- 首屏时间是怎么定义的?怎么统计首屏的时间?
- 项目里页面性能优化,具体是做的哪些优化?
- 做题1:this 指向的题目
- 我再问一些问题,可以介绍一下事件循环吗
- async/await 的原理
- 做题2:实现类似 lodash 的 set 方法的题目
- 做题3:子集
- 反问:
- 主要技术栈:react
- 业务:主要偏B端,面向国内的供应商,整合,推到海外去。供应链和物流
- 工作节奏:早上 10.30,晚上没有固定时间,一般9点或者10点下班
虾皮Shopee-Infra
前端一面
- 自我介绍
- 项目里参与了哪些部分?
- 项目的难点或亮点说一下
- 项目问题:balabala......15分钟
- eval 和 new Function的区别 ?你会优先选择哪个呢?
- 做题1:代码考核写一下输出
new Promise((resolve, reject) => {
console.log(1)
resolve(true)
console.log(2)
throw new Error('err')
console.log(3)
reject(false)
}).catch(err => console.log(err))
.then(res => console.log(res))
- 做题2:二叉树的路径总和
- 反问
- 技术栈:React + Typescript
- 做的业务:基础设施服务,类似云厂商,提供很多域名解析,存储,监控,日志、图片等基础服务,提供给公司的开发人员使用这些基础设施服务
- 工作节奏:看个人,整体比较轻松,早9晚7
- 你现在在 xxx 公司还在职吗?你们工作节奏怎么样
- 你们这个项目还是有一些亮点,比如 xxx 做得比较好,可以看一下行业内的其他产品,看一下它们有没有提效的措施,借鉴一下。像国外的 xxx 也是做得挺不错的
米哈游
前端一面
前端一面问一些基础知识和项目,然后可能会有 coding
- 自我介绍(3min 左右)
- 你们公司做什么的,产品研发团队都在哪里?卷不卷
- qiankun 的原理?它是怎么做到与技术无关的?
- css modules 是怎么做 css 的隔离的?
- js 怎么隔离?
- 闭包它具体的作用机制是怎么样的?闭包具体是什么东西?可以解释一下吗?
- 那有听说过 js 的原型链吗?__proto__是ES规范里的吗?
- 除了这种方式有其他方式可以拿到对象的原型吗?
- js 的继承是怎么做的?
- 代码考核:手写 js 组合继承的demo
- 项目问题:balabala......15分钟
- c端图片的懒加载怎么做的?
- 说一下 http 1和 http 2的区别
- http1 的队头堵塞
- 对 http1的keep-alive 的了解。keep-alive 具体alive多久?
- http 2 的请求头信息压缩是什么压缩的
- http 2 的其他的特性
- webScoket 和 http2 服务端推送的差异
- tcp 的拥塞控制是怎么做的
- udp 和 tcp 区别
- 说一下 udp 的使用场景
- 整个 DNS 域名查询过程是怎么样子的
- 你现在比较熟的框架? react
- react 的缺点是什么?或者是 react 设计得不太合理的地方
- react 和 vue 的区别是什么
- react 引入 hooks 是为了解决什么问题
- hooks 的原理
- useState,每一次函数重新渲染的时候,useState怎么能够做到返回的状态是之前的状态呢?
- 队列是一种什么样的数据结构?听说过优先队列吗?
- 可以说一下操作系统里的堆和栈吗?
- 为什么变量放到栈里,对象放堆里 ?
- 代码考核:手写发布订阅模式
- 平时是怎么学习前端的?
- 一般你遇到一个报错,debugger 打断点,怎么打断点?
- react 的调试工具用过吗?
- 一般 react 组件报错是怎么做的
- 对未来3-5年的职业规划
- node 在前端发挥怎么样的作用?
- 反问
- 技术栈:新项目是 react,老项目是 vue
- 现在做的东西:中后台、b端低代码,基于阿里 lowcode-engine 做的
- 当前业务:采购,法务,点餐,财务系统
- 工作节奏:早10-10.30 6.30 吃完饭,7-8点下班
- 组内成员:前端 4人,后端6人。
蔚来智能驾驶
前端一面
- 介绍一个比较有代表性的项目,前端这部分突出比较有难点和亮点的部分,ok吧
- 你在项目中的角色和定位
- 项目问题:balabala......15分钟
- 介绍一下 IOC 和 DI 的设计思想
- 性能优化都做了什么?还有都关注哪些指标的优化呀?
- 做题1:下面代码的结果是什么?并说一下原因
let object = { a: 0 };
function func(obj) {
obj.a = 1;
obj = { a: 2 };
obj.b = 2;
}
func(object);
console.log(object);
- 说一下你对闭包的理解
- 说一下浅拷贝和深拷贝的区别
- 深拷贝怎么实现
- 做题2:找出二叉树中某两个节点的第一个共同祖先
- 做题3:lazyMan懒汉
携程机票业务
自己主动取消面试:因为当时基本上所有的面试都是一面就挂,已经面不下去了,主动取消,来年再战!