bilibili c端业务 秋招

一面

  1. 自我介绍
  2. 简单聊聊实习
  3. eventloop 说输出顺序
  4. 手写 sleep
  5. 直接使用js的sort输出什么、是否改变原数组
  6. promise与try catch输出问题
  7. 在for...in里使用splice改变数组的输出问题

过了一会约二面

二面

  1. 自我介绍
  2. 科班学的是哪些语言,有没有上过程序设计课,有哪些课程
  3. 如何学习前端,学习过程中如何构建自己的知识体系
  4. 构建工具迁移有遇到什么问题
  5. 有没有自己写过webpack或者vite的插件
  6. loader和plugin的区别
  7. 样式隔离有哪些方案
  8. 以什么原则区分基础组件、UI组件、业务组件等等
  9. 设计一个图片组件,有哪些需要考虑的方面,详细说说懒加载
  10. 使用js完成一个无限循环的小星星动画会很吃性能,有哪些替代方案
  11. animation、transform、gif性能对比
  12. 项目相关
  13. 如果需求遇到技术难点需要delay,你会怎么处理这种情况
  14. 如果你是一个迭代了一年的项目的owner,这个时候有一个比较难的需求,派了一个3-5年的老员工跟你一起干,你会如何完成这个需求

没后续了

全部评论
手写sleep如何
点赞 回复 分享
发布于 05-21 22:37 北京
只有两次面试吗
点赞 回复 分享
发布于 01-20 08:46 黑龙江
接好运
点赞 回复 分享
发布于 01-19 17:46 北京

相关推荐

字节跳动Data AML部门前端实习一面面经本次面试时长1小时,主要涵盖项目经历、技术原理、基础知识和算法编程等方面,具体内容如下:一、项目经历面试官首先询问了实习项目相关内容,围绕项目背景、技术实现、遇到的问题及解决方案展开交流,考察对实际项目的参与度与理解深度。二、Suspense原理及实现1. 原理:Suspense 是 React 用于处理异步渲染的组件,可在数据加载或组件渲染完成前展示加载指示器,提升用户体验。2. 实现方式:被问到在 useEffect 中存在 fetch 请求时,如何让顶层组件感知组件存在异步请求。回答可通过 React Context 实现信息透传,但存在更优方案,可从 React 的新特性或状态管理库角度进一步优化 。三、JS基础1. var、let和const的区别:var 存在变量提升,会导致变量在声明前可被访问;let 和 const 具有块级作用域,更加安全。2. var逐渐被弃用原因:var 没有块级作用域,在复杂代码中容易引发变量覆盖等意外问题,使用 let 和 const 可避免此类风险,提高代码的可读性和稳定性。四、CSS基础1. 三列瀑布布局(两边固定,中间自适应):纯CSS可通过浮动或绝对定位实现;使用flex布局更优雅,flex: 1 表示该元素会自动分配剩余空间。2. flex常用属性:主要涉及主轴和横轴方向设置,如 flex-direction 定义主轴方向;常用的居中属性包括 justify-content: center(主轴居中)和 align-items: center(交叉轴居中) 。3. CSS动画:通过 animation 属性实现,配合关键帧 @keyframes 定义动画的起始和结束状态、变化函数(如线性变化)以及时间等参数。animation 在渲染进程的合成线程执行,不会阻塞JS执行,效率较高。五、算法编程题1. 合并有序链表// 定义链表节点结构function ListNode(val, next) {this.val = (val === undefined? 0 : val);this.next = (next === undefined? null : next);}var mergeTwoLists = function(l1, l2) {const dummy = new ListNode(0);let current = dummy;while (l1 && l2) {if (l1.val < l2.val) {current.next = l1;l1 = l1.next;} else {current.next = l2;l2 = l2.next;}current = current.next;}current.next = l1 || l2;return dummy.next;};2. 二叉树寻找公共父节点(节点有parent指针)function lowestCommonAncestor(p, q) {const set = new Set();while (p) {set.add(p);p = p.parent;}while (q) {if (set.has(q)) {return q;}q = q.parent;}}3. 实现sum函数curry化
查看11道真题和解析
点赞 评论 收藏
分享
1. markdown渲染自己如何实现,说一下思路2. 主题切换是如何实现的3. 切换时的localStorage持久化配置是干什么的4. 如果是动态的切换,根据时区去切换主题应该怎么实现(取Date.now())5. 如果一直在这个页面上,那在切换的边界时间点,不进行刷新,如何去切换主题(设置监听,或者到时间服务器推送一个数据然后去切换)6. 有两个网址,一个主站,一个子站,主站变了主题如何将子站的主题也切换(用跨标签的通信方式)7. 如果不用跨标签通信呢?(面试官说用cookie)8. 你觉得Pinia的优点在哪,在项目中带给你觉得特别好的东西?(回答了组件间状态同步,面试官说这些localstorage也可以实现,又回答了composition api)9. 说一下原型,闭包,事件循环10. 说一下宏任务有哪些,微任务有哪些11. 基于axios实现一个类似中间件的请求方法,比如说有一个axios的封装,这个封装可以热插拔或者是基于插件的形式,能够针对黑产进行处理,或者对其他刷网站的行为进行处理,如何分别实现这两个插件和一个共同对这两个行为限制的插件12. 说一下图片懒加载是怎么优化的13. 还有其他实现图片懒加载的方式吗14. 怎么确定图片是有性能上的问题的15. 在开发中关注过哪些优化的指标16. 手撕一个拖拽dom的场景题
查看16道真题和解析
点赞 评论 收藏
分享
评论
3
7
分享

创作者周榜

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