本人一年小公司,2年前端大厂外包经历,坐标杭州,记录6月份部分面试记录,还有一部分忘的太多没记录。
讯盟科技 (拿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
政采云 (挂)
一面 技术面
- 聊项目
- 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
*/
2
/* Promise.allSettled可以将多个Promise实例包装成一个新的Promise实例。不同于Promise.all只有promise都
* 成功时返回一个数组,allSettled总会返回一个结果数组,数组中的每一项分别是每个promise的运行结果。
* 请实现一个promise.allSettled函数
*/
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~
*/
写在最后
我是思唯,一个开始尝试向社区输出的东西的前端开发一枚。
文中如有错误,欢迎大家在评论区指正,如果这篇文章帮助到了你,欢迎点赞👍和关注❤️
如果你也有相同的经历、或有问题想找我咨询,那欢迎骚扰 vx: W_247096