快手前端三面面经

一半聊天,二面随口一提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)
    }
    
#如何判断面试是否凉了#
全部评论
商业化嘛
点赞 回复 分享
发布于 2023-08-09 16:29 浙江

相关推荐

2025-12-24 15:25
已编辑
门头沟学院 前端工程师
是腾讯的csig腾讯云,前天晚上九点突然打电话约面,激动的通宵学了一晚上,第二天状态很差改了今天(以后再也不通宵学习了)感觉自己浪费了面试官一个半小时单纯手写+场景,无八股无项目无算法,打击真的很大,全是在面试官提醒的情况下完成的,自己技术方面真的还是有待提高,实力匹配不上大厂和已经面试的两个公司完全不一样,很注重编码能力和解决问题的能力,然而我这两个方面都很薄弱,面试官人很好很耐心的等我写完题目,遇到瓶颈也会提醒我,写不出题也会很耐心的跟我讲解好感动,到最后面试结束还安慰我打算把下周最后一场面试面完之后就不面啦,如果能去实习还是很开心,但是最重要的还是好好努力提高技术以下是面经第一题// 实现一个解析 url 参数的函数function parseUrl(urlStr) {// TODO}parseUrl('*********************************************');// 返回 {a: 1, b: 2, c: 3}追问:在链接里见过什么部分?用 hash 路由的话放在哪第二题// 考虑有一个异步任务要执行,返回 Promise,这个任务可能会失败,请实现 retry 方法,返回新方法,可以在失败后自动重试指定的次数。/*** 异步任务重试* @param task 要执行的异步任务* @param times 需要重试的次数,默认为 3 次*/function retry(task, times = 3) {// TODO: 请实现}// ---------------测试示例 ----------------// 原方法const request = async (data) => {// 模拟失败if (Math.random() < 0.7) {throw new Error('request failed');}const res = await fetch('https://jsonplaceholder.typicode.com/posts', {method: 'POST',body: JSON.stringify(data),});return res.json();}// 新的方法const requestWithRetry = retry(request);// 使用async function run() {const res = await requestWithRetry({ body: 'content' });console.log(res);}run();第三题就是给 retry 函数添加类型注释,用到泛型第四题:在组件库中将 Alert 用 api 的形式实现(应该就是 message 这个组件)怎么渲染到一个浮层里而不是原地渲染出来
不知道怎么取名字_:技术这个东西,太杂了,而且要下功夫的
查看5道真题和解析
点赞 评论 收藏
分享
评论
9
18
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务