2年前端(外包经历) 6月部分面试记录 (高级、资深岗位)

27,100 阅读8分钟

本人一年小公司,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日 技术面

  • 手写题:
  1. 实现sum(1)(2)(3) 输出 6
  2. 手写防抖函数
  3. 实现sleep函数 实现sleep(1000)延迟执行 //三版 promise、generator、async await
  4. 实现两数组取交集[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