快手前端一面10.10
秋招体验最好的一次面试,面试官很友好一直笑搞得我全程憋笑。。体验最差的一次也是快手,所以这玩意真的看人不看公司
- 自我介绍 最开始面试官就说他也是转码的但是以前很容易 现在你要转就难了
- JS手撕new操作符 居然说有些细节忘了也没关系哈哈哈
- 解释原型和原型链
- Object.__proto__和Object.prototype.__proto__分别是什么
- Map和WeakMap的区别
- Set和Map查找的时间复杂度是多少
- 如何实现数组去重new Set([a,b]),但是要求var a = {a:1} var b = {a:1}看成同一个对象,m 个元素时间复杂度是多少?能不能优化为O(1)?
8. 箭头函数的理解,this什么时候确定,能不能改变this ,我说不行,面试官说我表述不准确 可以改变外层函数的this进而改变箭头函数的this ,funciton a( ){ const b=( )=>{ } } 好吧。。
9.事件循环代码看输出
10.追问:requestAnimationFrame是否了解?执行时机是什么?微任务队列清空后还有空闲会干什么?一帧时间会执行几次宏任务和微任务?
11.项目,实习相关问题
12.虚拟列表的原理,如果一次性加载大量数据,但是不考虑首屏性能,数据加载完成后续再滚动会不会卡顿?为什么?
13.手撕 实现add函数:add(1)(2).cacl( )输出3 add(1)(2)(3).cacl( ),输出6 ,一次只传一个参数,随时可以cacl( )
14.反问 问了应届生有没有培养机制 他说有,但是很多人其实都很烦去培训,这么真诚的吗。。
挺有意思的面试官,问了很多难得问题和我说是因为我基础答上来了才问深的,所以能让我过吗,转码哥?