哔哩哔哩 T2实习生一面面经


  1. 自我介绍

  2. 在校期间做过那些项目?

    • 中小学生心理测评管理系统

    • 团队考试和签到系统

    • 西南油气田公司实验性项目

    • 实时通讯聊天应用

    • 一些小程序。。。。

  3. 说一下聊天项目的架构?

    • React Hooks开发页面逻辑,Webpack构建,DvaJS 状态管理,Ant Motion动画。。。。(不知道该说啥,就随便说说用了什么,呜呜呜)

  4. DvaJS的核心概念?

    • State、Reducers(修改状态)、effects(异步操作)、Subscribe(监听路由,开启对Socket回调的监听)

  5. 用Ant Motion做了那些动画?

    • 好友列表、对话列表和消息列表的入场和出场的队列动画

  6. 自己写没写过CSS3的动画?

    • Vue路由切换的过渡动画之类的(肯定写过啊,男孩子不能说自己不行)

  7. 那这个项目在代码规范层面做了什么?

    • EsLint、Prettier、Git提交规范等

  8. 怎么实现的未读消息记录,分别在什么时候加载?

    • 用Redis暂存指定用户的未读消息数和最新的消息内容,在初次访问聊天页面的,随着好友列表渲染一次,在接收到新的消息后,更新来自对应用户的未读消息数

    • 在切换到拥有未读消息的好友聊天窗口时,清空redis中的数据,以便下次记录

  9. 为什么要用better-scroll?

    • 为了发送新消息时或者接收到新消息时,页面滚动更流畅,切换聊天窗口的时候,视图窗口回到页面顶部

  10. better-scroll实现滚动的原理?

    • 父元素固定高度,设置overflow属性隐藏溢出的子元素,子元素的高度需要大于父元素,这个时候better-scroll所指定的容器就能滚动(记得看官网这么说的,不晓得是不是,阿巴阿巴)

  11. 怎么实现的同时在线的客户端好友列表同步?

    • 用SocketIO结合Koa服务器作为双方通信的桥梁,结合发布订阅和DVA状态管理刷新视图

  12. 图片资源怎么处理,用了什么缓存?

    • 上传前压缩图片,通过七牛云管理所有的图片资源,使用serviceworker用作静态资源缓存

  13. 为什么Vue3不兼容IE8?

    • Vue3大量使用了ES6的语法,例如响应式处理改用Proxy,通过Reflect读写代理对象属性,通过Set收集视图依赖,Map创建代理对象属性与Set依赖的映射关系

  14. 你提到了ES6,那么ES6中的Promise的链式回调与async await将多个Promise串行化,这两种方式有啥区别?

    • 可读性问题,代码组织性,错误处理啥的

  15. Call、Apply、Bind方法的区别?

    • Call、Apply方法直接执行函数,但是传入第二个参数不同,Call函数传入参数列表、Apply函数传入一个数组或者类数组

    • Bind方法返回一个新的函数,调用Bind方法和返回函数的参数会进行合并,并且Bind作为构造函数调用,this会指向创建的实例

  16. Vue2的Options APi与Vue3的Composition API有啥区别?

    • 对于this的依赖程度,同一功能模块的代码组织性,对TS的支持性

  17. Vue中的路由拦截怎么做的?

    • 全局前置函数中,通过to和next参数,按照当前用户权限对路由重定向

  18. 浏览器本地存储的区别?

    • 生命周期不同,数据持久性不同,别的好像没啥区别,淦

  19. Vue的diff算法

    • 记不太清,大概巴拉了一下

  20. Vue3的setup中可以使用this吗?

    • 达咩,setup函数执行很早,此时Vue实例还未被创建,不能使用this

  21. TS中interface和type的区别

    • interface侧重对数据结构的描述,type侧重与类型关系

    • 多个同名interface声明可以合并,type可以定义联合类型、交叉类型、元组和基本类型别名,通过in来迭代类型键名,生成映射类型

  22. Webpack和Vite的区别

    • Webpack在开发和生产环境下,都需要先打包构建,才能运行

    • Vite在开发环境下不需要打包,通过浏览器原生支持的ESmodule加载模块,所以启动速度很快

    • 打包时使用RollUp打包,并默认做了很多优化配置,例如压缩,tree-shaking啥的

  23. 使用Vue3遇到了那些坑?

    • 大多数主流UI库对于Vue3的支持还不是那么好

    • 写项目那会儿,VueCharts不能用在Vue3,好气

    • Vue3版本迭代比较快,项目才写完,又有了新的语法糖,真就为方便而生

  24. B站用了多久?

    • 四年老用户,成熟的五级号

  25. 平时用B站干什么,有关注B站PC端的banner内容吗?

    • 看动漫、鬼畜、学习视频,里面个个都是人才,说话又好听

    • 关注呀,去年那个banner图有春夏秋冬四个版本

  26. 反问

#春招##实习##面经##哔哩哔哩##前端#
全部评论
这是我这些天看到最难的面试啦
1 回复 分享
发布于 2022-03-16 12:20
请问t2实习生是什么呀,没听过这个名字,我看内容不也和java开发差不多吗。。。
点赞 回复 分享
发布于 2022-04-25 18:04
楼主问的项目多不多啊
点赞 回复 分享
发布于 2022-03-08 14:56
楼主带带我,呜呜呜
点赞 回复 分享
发布于 2022-03-08 14:34
楼主知道哔哩哔哩实习有机会转正吗?😂
点赞 回复 分享
发布于 2022-03-07 22:46
我感觉我找不到实习了。。
点赞 回复 分享
发布于 2022-03-07 14:52
实习生都问这么多啊,现在卷成这样了啊
点赞 回复 分享
发布于 2022-03-04 15:52

相关推荐

评论
8
41
分享

创作者周榜

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