快手一二面凉经

一面

  1. css盒模型:ie盒模型border-box、标准盒模型content-box
  2. css动画
  3. 原型原型链
  4. new的过程
  5. 浏览器输入url到渲染的整个过程(详细讲了)
  6. DNS解析的迭代递归查询
  7. 浏览器事件循环、node事件循环(node不大了解没答好)
  8. 最长前缀匹配(自己好蠢这题做了十几分钟,n2被自己写成n3,简单题啊简单题!!)
  9. flat 手写
  10. 项目中用的 vue-router
  11. 权限验证 token
  12. defineProperty 和 proxy
  13. vue如何对数组进行监听
  14. 考察了个 getter
    Object.defineProperty(obj, 'a', { })
    if(a === 1 && a === 2 && a === 3) {
    console.log(1);
    }
    有没有办法输出 1
  15. composition API 中 setup 的是哪个生命周期
  16. Vue3 如何在页面初次渲染完毕对 dom 元素作修改

二面

自我介绍

  1. 项目,没啥特点面试官没兴趣

  2. listToTree,想用 Map 实现O(n),没做出来,面试官引导后也没做出来
    后来说要不让我重写一下 O(n2),思路太乱了没写对

  3. 问了下平常学习印象深刻的地方和面试官说说,说了看 vue 源码,讲了一下响应式

反问

还是自己太菜了,第二题挺基础的题也没答好

补一下第二题代码:
// O(n2)

function listToTree (list) {
  const tree = [];
  for (let node of list) {
    if (node.pid) {
      for (let i = 0; i < list.length; i++) {
        if (list[i].id === node.pid) {
          if (!list[i].child) {
            list[i].child = [node]
          } else {
            // 实则是利用了引用类型的特性
            // 当 push 到这个数组中时
            // tree中相应的引用也会发生改变,因为指向的是同一个地址
            list[i].child.push(node);
          }
        }
      }
    } else {
      tree.push(node);
    }
  }
  return tree;
}

// O(n)
面试后复盘写的,有问题可以提出讨论

function listToTree (list) {
  const tree = [];
  const hash = new Map(); // hash 中应该存放子节点数组
  for (let i = 0; i < list.length; i++) {
    const node = list[i];
    if (node.pid) {  // 如果这是个子节点
      if (hash.has(node.pid)) {
        // 该父节点存在子节点数组
        // 1.有可能是子节点添加的,这种情况父节点上并没有相应的引用,所以加入到 hash 中临时的子节点数组中
        // 2.也有可能是父节点自己添加的,这种情况父节点上有相应的引用,所以 push 到 hash 中相当于 push 到父节点的 child 中
        hash.get(node.pid).push(node);
      } else {
        // 该子节点的父节点不存在子节点数组
        // 初始化父节点的子节点数组
        hash.set(node.pid, [node]);
      }
    } else {  // 这是个根节点
      tree.push(node);  // 根节点直接推入就行了
    }
    if (hash.has(node.id))  // 先前已经遍历到了我的子节点
      node.child = hash.get(node.id);
    else {                // 先前没有遍历到我的子节点
      node.child = [];    // 记住,保留引用关系很重要
      hash.set(node.id, node.child);  // 这里保存的是一个引用关系需要重视
    }
  }
  return tree;
}
#快手暑期实习##面经##快手#
全部评论
太顶了,太需要了。
点赞 回复 分享
发布于 2022-03-18 21:06
楼主对网易互联网暑期实习感兴趣吗?技术岗和人工智能岗紧缺!安卓开发和IOS开发通过内推可免简历筛选,直通笔试!其他技术岗和人工智能岗也机会多多~有兴趣的话可以私戳我内推哦~
点赞 回复 分享
发布于 2022-03-22 20:07
楼主大几呀
点赞 回复 分享
发布于 2022-06-10 16:08

相关推荐

研J小政:刚打了个电话给你😁😁😁
点赞 评论 收藏
分享
10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
5 17 评论
分享
牛客网
牛客企业服务