字节前端日常实习(已OC)

字节日常实习一面

4.13.晚上7点(1个半小时)

他们公司多是react框架+ts+自己封装hooks

  1. 自我介绍+项目介绍

  2. 问微前端子应用父应用怎么相关联以及微前端的核心实现

  3. 判断类型的几种方式

  4. 手写instanceof的实现

 //迭代实现  function instanceOf(obj,constructor){   //取constructor的原型   let prototype = constructor.prototype;   //取obj的原型   obj = obj.__proto__;   while(true){    if(obj === prototype)     return true;    obj = obj.__proto__;    if(obj === null)     return false;   }  }
  1. typeof的缺点

  2. 深克隆浅克隆

深拷贝实现:

方法1:使用混入的方法:

 var obj = {a:1,b:2}  var newObj = Object.assign({},obj)

方法2:使用递归

 
  1. 盒子模型,使用场景

  2. for in 和for of的区别

  3. position的属性

  4. ts的枚举类型和对象的区别

  5. vue和react的区别

  6. 制作一个扇形

    。。。就想起来这么多

 字节日常实习二面

4.14.下午4点(1小时)

自我介绍+项目介绍

  1. 项目中在登录时,服务器端是怎么知道是哪个用户登录的(token)

  2. token是什么

  3. session是什么,和cookie、sessionStorage的区别

  4. CDN是什么

  5. 浏览器缓存

  6. tcp和udp的区别

  7. http和https的区别

  8. img

 // 注意象棋棋盘是7 * 7,然后象棋每次跳日  // let count = 0  function solution(x0, y0, xn, yn, n) {      // 递归出口      if (n == 0) {          if (x0 == xn && y0 == yn) {              // count++              return 1          }          return 0      }        let arr = getNextSteps(x0, y0)      let sum = 0      console.log(arr);      for (let i = 0; i < arr.length; i++) {          sum += solution(arr[i][0], arr[i][1], xn, yn, n - 1)      }      return sum    }  let c = solution(0, 0, 5, 6, 5)  // console.log(count);  console.log(c);    // 用于判断它的下一步跳的情况,在最中间时一共有8种跳跃情况  function getNextSteps(x, y) {      let arr = []      // 往第一象限跳       if (x <= 4 && y >= 1) {          arr.push([x + 2, y - 1])      }      if (x <= 5 && y >= 2) {          arr.push([x + 1, y - 2])      }        // 往第二象限跳       if (x >= 2 && y >= 1) {          arr.push([x - 2, y - 1])      }      if (x >= 1 && y >= 2) {          arr.push([x - 1, y - 2])      }        // 往第三象限跳       if (x >= 2 && y <= 5) {          arr.push([x - 2, y + 1])      }      if (x >= 1 && y <= 4) {          arr.push([x - 1, y + 2])      }        // 往第四象限跳       if (x <= 4 && y <= 5) {          arr.push([x + 2, y + 1])      }      if (x <= 5 && y <= 4) {          arr.push([x + 1, y + 2])      }      return arr  }  // let arr = getNextSteps(0, 0)  // console.log(arr);  
  1. 写一下dfs的后续遍历求树所有节点的和

 class Tree {      constructor(val, left, right) {          this.left = left == undefined ? null : left          this.right = right == undefined ? null : right          this.val = val == undefined ? 0 : val      }  }      // 后续遍历求节点和  function treeNode(root) {      if (!root) {          return 0      }      // console.log(root.val);      let left = treeNode(root.left)  //一直遍历到左子树的叶子节点,由于叶子节点无左节点了,也就是其左节点为null了已经,所以就会返回0      let right = treeNode(root.right) // 返回0      let sum = left + right + root.val //拿到以当前节点为根的树的和      console.log(sum);      return sum  }    let tree = new Tree(1, new Tree(2, new Tree(4), new Tree(5)), new Tree(3))  console.log(treeNode(tree));

字节日常实习三面

没问啥。主要是写代码。

  1. 重新写了下二面没通过代码题跳马、还有后续遍历以及层序遍历求所有节点和。

  2. 使用二分查找查找一个先递增后递减数组的拐点索引。[1, 2, 3, 2, 1] => 2


#字节跳动实习##前端##实习##招聘进度#
全部评论
巨量引擎是vue技术栈多点吧,哪个部门呢
1 回复 分享
发布于 2022-05-07 12:57
请问楼主这是哪一个部门呀~
点赞 回复 分享
发布于 2022-04-22 21:41
你好,HR面和oc之间隔了多久呢
点赞 回复 分享
发布于 2022-05-16 14:24

相关推荐

我已成为0offer的糕手:你就是offer蜈蚣的蜈蚣投投,只能捡你吃剩的了
点赞 评论 收藏
分享
未来十年java最好的一年:为什么不要JAVA,为什么
点赞 评论 收藏
分享
7 51 评论
分享
牛客网
牛客企业服务