当前位置: 首页 > 面试经验 >

抖音前端架构暑期实习面经

优质
小牛编辑
60浏览
2024-08-02

抖音前端架构暑期实习面经

timeline

7.16投递

7.22一面

7.25二面

7.29三面

7.30HR面

7.31offer

由于实习的经历和面试岗位比较匹配,面经中针对实习项目的问题做了省略,只列出了一些常规问题

一面 1h

前30min聊实习项目

继续问项目,穿插问了一些八股

  • message组件怎么挂载到屏幕上
  • css 居中的几种方式
  • 绝对定位会有哪些问题,导致绝对定位失败的原因有哪些
  • vue Teleport
  • react Suspense组件原理
  • 了解的登录认证方式,token和session认证的优缺点
  • 大文件断点续传
  • 分片上传的content-type是什么
  • 简答请求复杂请求,触发复杂请求的条件

算法:

  • 括号匹配
  • 给正数n,求1-n和为n的所有组合

二面 1h40min

全程结合项目和实习问

  • pnpm 软链接和硬链接的区别
  • pnpm 包的结构,三层寻址
  • 什么是幽灵依赖,会引发什么问题
  • package A和package B依赖一个包的不同版本,如何统一成一个版本
  • pnpm hoist机制
  • react合成事件,为什么不用浏览器原生事件,出发点是什么,或者出于什么考虑
  • 文件上传,怎么做文件预览,文件在上传中预览可行吗
  • 文件秒传怎么实现
  • 一个10g的文件怎么分片,怎么确定合适的分片的大小,分片hash过程怎么优化
  • webworker多线程可以避免阻塞,那为什么不把js所有的内容都放到webworker运行
  • 假设你在百度网盘上传了一个文件,你的服务器可能存在不同的地区节点,假设你人在北京,北京节点肯定是最快的,但是你只有一个url或者一堆备选的url,但是你需要找到在你所处区域或者所处网络环境沟通最快的节点,这块怎么去做,怎么去找到一个响应最快的节点
  • 第一段实习设计工具的开发,我想知道和figma或者其他同类型的工具之间的一些性能差距,我需要从那些方面或者说能够从那些方面去做一些策略
  • webpack打包过程
  • webpack如何处理不同类型的文件
  • commonJs和esModule的区别
  • treeShaking是什么,为什么一定要在esm才能生效,理论上ast语法树分析可以获取到import和require,不能基于这种方式treeShaking的原因
  • 怎么优化webpack打包速度,缓存是怎么判断文件是否发送变化
  • 组件库是怎么做的,需要关注哪些事项
  • 了解storybook吗,为什么用vitepress搭建官网,做出一些决策的出发点是什么
  • 有实现自动化测试的一些东西吗,如过让你去测试,要关注哪些方面
  • 测试的方式一般有哪几种,了解过吗
  • 组件库css的方案选择(scss),使用前有考虑其他比如less等其他方案吗,决策点是什么

手写

  • 函数柯里化
  • promise并发限制
  • 根据一个modalProps实现一个modal组件,可以创建多个弹窗,考虑zIndex的情况
interface ModalProps{
    content: ReactNode,
    onCreate:()=>void,
    onCancel:()=>void,
    //...
}
const id = Modal.show()

Modal.close(id)

Modal.closeAll()

三面 1h30min

  • 分片上传流程,后端怎么处理的
  • 项目jwt鉴权怎么实现的,流程
  • jwt的格式是什么样的
  • jwt的加密算法是那种,加密信息会包含什么
  • token是明文还是加密,我可以解密回来吗
  • 从原理上说一下token怎么保障安全性的
  • jwt服务端加密的key是一个什么key,是对称加密的key还是非对称加密的公钥或私钥
  • jwt的签名是用来做什么的,怎么校验的,签名和加密的区别
  • 签名用什么来签,公钥还是私钥,做签名生成和校验的公钥和私钥是放在哪的
  • token可以被伪造吗
  • cookie有哪些属性,csrf攻击怎么防范,token怎么存储,问了很多cookie安全相关的
  • 了解其他登录的方案吗
  • session是存储在服务器哪里的,假设我有abc三个服务器,那我可能登录是其中一个服务器吗
  • 项目是基于什么背景下写的
  • 讲解一下react的一些核心原理,以一个简单的计数器为例,讲一下挂载和更新的具体流程
  • setState是怎么触发更新的

手写:

用熟悉的框架写一个slider组件(不用input实现)

#前端##字节跳动##面经#
 类似资料: