面试题训练8
# 面试流程
# 讯盟科技 (拿offer)
一面 技术面
- 项目
- axios如何取消请求、原理
- react如何diff、细节
- hooks使用情况
- 为什么hooks不能写在循环或者条件判断语句里
- useMemo、useCallback使用场景
- useEffect、useLayoutEffect区别
- 拖拽原生实现方式
- 聊聊promise
- redux的三个原则、如何写一个中间件
- dva和redux的区别是什么
- TL做哪些工作
- 怎么应对工作中的压力
二面 人事面
- 项目负责什么
- 作为面试官招聘 中级、高级的标准是什么
- 投入精力最多的项目、因你有什么不同
- 学习方式、有没有将一些学习的东西应用到工作中
- 自己有没有做工作之外的技术上的东西
- 遇到了自己解决不了的问题怎么办
- 如何面对工作压力
- 周末会做些什么
- 怎么看加班
- 希望加入一个什么样的技术团队
三面 前端负责人面
- 项目的起因、目的
- 如果长时间分配给你一些琐碎的、对你来说没什么技术含量的事情怎么看待
- 学习方式
- 最近看什么书、第一章讲的什么
- 如何看待压力
- 如果业务压力过大、导致经常加班、没时间学习怎么办
- 对团队的向往
# 光云科技 (拿offer)
一面 技术面
- 项目描述、负责内容
- 如何理解fiber
- fiber节点对象的一些属性都有哪些
- react diff算法
- 场景题: 一个下拉框 200条数据 怎么优化 (默认展示10条)
- react和vue的区别
二面 主管面
- 负责最复杂的项目描述、负责内容、技术方案
- 60个请求(限制最多同时请求6个)请求并行方案
- 原生拖拽方案及实现细节(mouseMove、drag,drop)
三面 6月3日 总监面
忘记了。。。
# 数美科技 (拿offer)
一面 技术面 电话面试
- react缺点(...无语)
- react hooks使用
- react class 组件constructor 中的super的作用、
- pureComponent和Compoent什么区别
- react组件名称为什么要大写
- 箭头函数和普通function的区别
二面 技术面 电话面试
- react class和hooks区别
- HOC使用场景、自定义hooks使用情况
- webpack理解
- 数组遍历方法 哪个快
- 聊项目
- react路由原理
- react-redux原理
- d3的理解
# 优脑银河 (拿offer)
一面 技术面 现场面试
- 深拷贝实现、和浅拷贝的区别
- 如何理解node单线程
- 数据库了解情况
- mongodb按照id查一条数据 语句
- TL做哪些事情
- 新工作的期望
二、三面 技术面
- 聊项目
- react生命周期 为什么新增了两个静态的 目的是什么
- hooks优势是什么、使用情况
- react diff算法
- 事件循环
- css flex
- Object.keys() 和 for in 区别
- filter 、map区别
- 手写bind函数
- 手写多维数组降纬 flat
- 手写函数实现数组 。[12, 3, 24, 1, 932, 6423] 按照首位排序
- 手写快排 quickSort
- 手写实现add函数 满足 add(1)(2)(3)() 返回 6
- 手写简版 深拷贝
# 兑吧 (挂)
全是es6基础问题、省略。。。
# 杭州促极科技 (拿offer)
一面 6月7日 技术面
- 手写题:
- 实现sum(1)(2)(3) 输出 6
- 手写防抖函数
- 实现sleep函数 实现sleep(1000)延迟执行 //三版 promise、generator、async await
- 实现两数组取交集[1,2,3,4,8]、[2,3] // 交集[2,3];
- 聊项目
- egg相对于koa的区别、chair相对于egg的区别
- 一道sql查询语句
- lodash都用哪些东西 get、set实现原理、深拷贝实现原理
- 通过学习了圆满在业务开发中有哪些应用
- react diff
- hooks和class组件的区别
- hooks里怎么模拟class组件生命周期
二面 6月7日 TL面
- 聊项目
- 最满意的一个项目、其中职责
- 。。。忘记了
三面 6月7日 总监面
- 再一遍自我介绍
- react生命周期
- 了解哪些设计模式
- 设计模式了解哪些、作用是什么、怎么看
- TL都做哪些事情、怎么给组内人员分配工作
- 。。。忘记了
# 快手 (挂)
一面 6月8日 技术面 视频面试
- 聊项目、立项初衷、目的、负责什么、落地成果
- vw、vh、rem、em
- flex
- 实现垂直居中布局
- link标签prefetch、preload作用
- script标签async、defer作用、区别
- 事件模型、事件代理
- e.target 和 e.currentTarget区别
- 0.1 + 0.2 !== 0.3 解决办法
- 检测数据类型方法有哪些
- typeof String(1) 和type new String(1) 返回值
- String(1)和new String(1) 为啥都能调.substr()
- 浏览器安全策略 跨域方法 CORS怎么携带cookie 。 cookie的samesite作用
- 如何理解事件循环
编程题 : 实现下面函数
function add() {}
function one() {}
function two() {}
console.log(one(add(two())))
// 3
console.log(two(add(one())))
// 3
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 政采云 (挂)
一面 技术面
- 聊项目
- react hooks理念、使用情况、setState和class组件this。setState区别是什么
- http头部字段都有哪些
- 后端配置缓存和html meta标签配置缓存的区别
- 对cdn的理解
- 忘记了。。。
二面 技术面
- 项目经历
- 自定义hooks使用
- var、let、const 区别
- Object和Map的区别
- Map和WeakMap 的区别
- 垃圾回收机制 栈内存回收、堆内存回收
- 前端的核心竞争力是什么
- 对前端一些比较热门或新的技术的了解
# 微店 (拿offer)
一面
- react事件系统
- react class组件和hooks区别
- useCallback和useMemo如何使用 作用
- 做过的性能优化
- 进程和线程的区别
- 线程、进程通信方式
- 使用webWorker是新开了个进程还是线程
- 首屏优化方案
- 拖拽实现方案
- 手写new函数 和数组降纬排序
二面
- promise原理
- promise先catch再then 在catch里返回内容then里回调函数能不能接受到
- promise错误如何捕获
- 讲讲浏览器事件循环
- 讲讲js是如何存储数据的 和垃圾回收机制
- 如何做组件库设计、及如何保证稳定性、如何做单测
- 组件设计、了解哪些设计模式、实际应用
- 可视化方案、svg、canvas区别 使用场景
三面 总监+hr面
- react和vue区别
- 讲讲做过最复杂的项目和觉得贡献最多的项目、
- 你做和其他人做的区别是什么、
- 为什么选择你
- 平时学习方式、学习能力体现在哪些方面
- 觉得自己对标阿里是p几
- 职业规划
- 周末时间都做什么
- 学习方式以及有没有输出什么东西
- 最近在学习什么
- 为什么想离开外包
- 你觉得外包和甲方的区别是什么
- 担任TL的时候都负责哪些事情、如何平均分配好每个人的工作量、怎么做评估的
# 丁香园 (拿offer)
一面
- 现场纸质手写题30分钟作答 具体忘记了
- react hooks和class的区别
- react diff策略 内部怎么做的、时间复杂度为什么是On3
- react 15 16区别、fiber架构优势
- code review 怎么做的
- 如何分配任务
- 如何做性能优化
二面
- 为什么离职
- 如何设计一个本地存储的包 提供给其他同事用, 思路、实现细节
- 觉得自己的优势和劣势分别是什么
- 职业规划
- 如何学习、怎么做规划
- 忘记了。。
三面
后续更
# GrowingIO (拿offer)
后续更
# 阿里CBU技术部 (学历挂)
1
/** * 找出数组中第k大和第m大的数字相加之和
* 说明:实现一个方法,找出数组中第k大的和第m大的数字相加之和
* 示例:
* let arr = [1,2,4,4,3,5], k = 2, m = 4
* findTopSum(arr, k, m); // 第2大的数是4,出现2次,第4大的是2,出现1次,所以结果为10
*/
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
2
/* Promise.allSettled可以将多个Promise实例包装成一个新的Promise实例。不同于Promise.all只有promise都
* 成功时返回一个数组,allSettled总会返回一个结果数组,数组中的每一项分别是每个promise的运行结果。
* 请实现一个promise.allSettled函数
*/
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
3
/**
* 实现一个EatMan
* 说明:实现一个EatMan,EatMan可以有以下一些行为
* 示例:
* 1. EatMan(“Hank”)输出:
* Hi! This is Hank!
* 2. EatMan(“Hank”).eat(“dinner”).eat(“supper”)输出
* Hi This is Hank!
* Eat dinner~
* Eat supper~
* 3. EatMan(“Hank”).eat('dinner').eatFirst(“lunch”)输出
* Eat lunch~
* Hi This is Hank!
* Eat supper~
* 4. EatMan(“Hank”).eat('dinner').eatFirst(“lunch”).eatFirst("breakfast")输出
* Eat breakfast~
* Eat lunch~
* Hi This is Hank!
* Eat dinner~
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#
# 参考链接
https://juejin.cn/post/6989626582465789966
上次更新: 2022/04/15, 05:41:34