快手前端三面面经
一半聊天,二面随口一提webRTC没想到给自己挖大坑,以后面试不敢乱说了。
不给自我介绍的机会,上来就拷打实习,聊vue3实现中遇到困难的一个点,问我为什么要实现vue3,我说感觉自己遇到了瓶颈需要深入,听到瓶颈,他就问我之前怎么学的。
然后聊到了webRTC,问我为什么要学,我说因为感觉很厉害(因为不能说是为了做项目啊,但是我也想不到别的理由),后面一直在给建议,说要注重基础(他似乎觉得我浮躁,虽然我解释了,但是感觉说服力不足,应该多说两句),问了一点js基础,写题,考察的都是比较深入和细节的东西,
然后就到了反问,我还问了个AIGC相关问题,他是不是觉得我更浮躁了
教训:二面我提到webRTC和反问的内容,都被记录下来了,尽量要避免反问问题的重复,还有就是不要乱说话。
-
eventemitter中,once除了注册一个wrapper,wrapper中off。还有没有别的实现方法
-
setTimeout和setInterval的区别,输出顺序:(我答121212...刚才试了一下发现不对)
function interval() { setTimeout(() => { console.log(1) interval() }, 10) } interval() setInterval(() => { console.log(2) }, 10)
用它俩实现动画有什么区别?这两个到底有什么细微的区别?
-
实现动画:里面细节蛮多的,没搞好
// TODO // fn(dom, styleKey, startVal, endVal, durationMS) 匀速变换方法 // 这是面试时候写的,之前没怎么练过,拉了 function fn(dom, styleKey, startVal, endVal, durationMS) { let step = Math.ceil((endVal - startVal) / 16.6) function helper(dom, styleKey, startVal, end) { if (end >= endVal) return requestAnimationFrame(() => { dom.style.styleKey = end helper(dom, styleKey, end, end + step) }) } helper(dom, styleKey, startVal, startVal + step) }