快手 前端校招 一二面

6,431 阅读2分钟

tips: 面快手的时候没怎么准备,很久远没用过的手写源码有点生疏了,/(ㄒoㄒ)/~~,话不多说,看题

一面 (视频面 1小时) 2月21日

  • 自我介绍

  • css布局方式,清除浮动的方法,BFC是什么,如何触发

  • call、apply、bind区别,能手写一个bind和apply吗

  • 手写promise源码, 另外实现promise.all方法和promise.race方法

  • 深拷贝和浅拷贝是什么,有什么区别,手写一个深拷贝函数,最好能处理循环引用和Date、Reg的

  • 实现js的sort api,具体的排序算法自己决定,这里我选择了快排

  • 算法,合并两个有序链表

  • 算法,一个有序数组反转后,找到第K大的元素(时间复杂度小于等于nlogn)

  • ES6都有哪些新的api,每一个都详细谈谈

  • vue响应式原理,看过源码吗

  • vue diff算法的原理,这里我谈了vue的diff和react的diff,并且分析了他们相同点和不同点

  • http和https的区别

  • url从输入到页面展示的过程

  • https的握手有了解过吗,详细过程

  • 判断数据类型的几种方法,优缺点,实现方式

二面 (视频面 1小时) 2月21日

  • 全程问react的知识

  • react中setState以后,是子树渲染还是整颗树渲染还是其他情况?

  • setState是异步的还是同步的,内部采用的是什么机制

  • react事件了解吗? (合成事件) 和普通事件有什么区别,实现原理

  • react Fibber 了解吗? (只答了时间片轮转算法,调度策略)

  • react diff采用的什么原则, (重点 last_index)

  • 算法,判断一个字符串是否是回文串

  • 算法,最大连续子序列(dp)

  • instanceOf原理,手写一个instanceOf

  • react开发的几种方式

  • react函数式写法和类写法的优缺点

  • react 类组件新增的两个生命周期是哪两个,作用是什么

  • react hook使用过吗? 使用过哪些hook

  • react 高阶组件有哪几种方式,如何写一个高阶组件

  • 什么时候使用useRef,可以做到什么事情

  • 算法,链表反转


全程压力还是蛮大的,项目组使用的技术栈我是超级喜欢的React+typescript