勇敢牛牛,勇闯字节实习!

308 阅读3分钟

前言

卓哥有句话说的很好,此时你所做出的某些选择,在多年后来看,或许就是你抓住的机会。

在我上周时候得知,有个同学可以帮我内推,我就在想,这会不会是我仅有的机会,我便抛开所有顾虑,把我的简历交给了他。

当我接到hr约面的电话时候,心脏在剧烈的跳动,好像要飞出来一样,久久不能停息。

当进入面试的状态时候,也便没有了其余的顾虑,只剩下复习,面试,复习,再面试,直到现在最终拿到了offer。

有人说,我太顺利了,回来第一个面字节还就面过了,确实,面试这个过程,运气也占很大成分,但庆幸的是,我当初选择迈出了这一步,或许多年后,我还会很庆幸我做出了这个选择。

我想去北京很久很久了,在去年找第一段实习的时候就想过去,不为别的,就想过去看看,见见各位热心的群友,请卓哥吃饭,卓哥真是我的贵人,在我这一路上给予了很大的帮助。


下面分享一下我的面经吧

一面(65min)

  • 实习项目

  • 大文件上传的过程

  • 如何使用web worker进行优化

  • 还能说一下其余的优化方案吗

  • 如何设计的收藏功能,如何进行数据库迁移的

  • 实习项目中的搜索参数如何拼接到url,然后通过url分享配置信息的

  • get和post请求区别

  • 解决跨域问题的方案

  • JS作用域和作用域链

  • 闭包和闭包的应用场景

  • v-for中的key的作用(引到diff算法中key的作用)

  • js事件循环(引到vue异步更新策略)

  • node.js相关,express框架(只说了会写个简单接口)

  • 读代码,作用域的题目(JS采用的是静态作用域)

  • 读代码,执行的先后顺序(JS事件循环机制)

  • 读代码,变量提升和函数提升(还有个函数覆盖问题)

  • 算法

    • 单链表逆置

    • 版本号排序

二面(60min)

  • 介绍一下实习中的sentry
  • 如何实现一个sentry的捕获异常的操作
  • 询问是否是私有化部署
  • 如何实现一个异常上报操作
  • 使异常数据减少80%,这个数据是怎么得出来的
  • 更具体的sentry配置
  • 所谓竟态问题的场景是什么
  • ref和reactive的区别
  • 实现一个ref,可以使用其余vue3的api
  • ref嵌套ref,怎么访问对应属性值
  • 用TS补充手写的函数
  • 深挖ref的使用,给了具体两三个示例,回答
  • vue3还新增了什么api
  • 读代码,关于this的指向问题(call绑定和箭头函数this指向问题)
  • 算法
    • 括号匹配升级问题

      如果括号能够匹配成功,则输出所有在()中的内容,不限输出的顺序输入:((2+3)+(3*4))+2输出:2+33* 4'(2+3)+(3*4),2.如果括号匹配不成功,则抛出错误输出:errorfunction solution(stn:string){}
      

三面(30min)

  • 介绍下Vue收集依赖和触发依赖的过程(从响应式引)
  • 模板中是怎么收集依赖的(从模板解析角度回答的)
  • 收集依赖是在组件的哪个生命周期(回答的created)
  • 组件间是怎么收集依赖的(从组件间通信回答的,不知道对不对)
  • 还有什么捕获异常的方案
  • window.onerror无法捕获哪种错误(没答上来...)
  • 算法
    • 'a.b.c' => {}  (转化成嵌套对象)

种一颗树最好的时间是十年前,其次是现在

感谢虎妞先生这一路上给予我的帮助