boss前端一二三面面经

8/26 boss直聘
项目具体做了什么,用了什么方式,有哪些难点
WebSocket 如何跟服务端校验在线或离线状态(心跳)
对 SSE 的了解
传输过程中网络中断了如何处理
协同文档怎么做
了解 OT 算法吗
有封装过组件吗
封装一个文件上传组件,支持断点续传,格式校验,说思路
如何支持并发上传
为什么使用 Vue-office,调研过其他方案吗
Token 无感刷新怎么做的
了不了解 JWT 和 auth 认证
页签功能
postMessage
如何使用路由懒加载
使用路由时碰到的问题
Keep-Alive 原理
页面已经被缓存,切回页面如何触发更新
用过 react 吗
了不了解 Vue 3.5 的新特性
了解 node 吗
箭头函数和普通函数的区别
前端哪些行为可能导致内存泄露
可能有哪些原因导致 Dom 节点没有被释放
了解 web-worker 吗
web-worker 可以访问 document 对象吗
了解 canvas 或 webGL 吗
CSS 画三角形
移动端,PC 多分辨率适配
手写发布订阅

8/29 boss直聘二面
CSS 动画
事件冒泡和捕获
事件委托原理
curTarget 和 eventTarget
addEventListener 有几个参数
如何查看页面使用的内存
如何定位内存泄露
闭包
Promise 中存在闭包吗
Vite 或 webpack 的常用配置

三面本来说的是技术面,上线以后才知道直接到hr了,hr人很好,上来也是问了下提前实习的时间,确认发的是正式offer,业务部门会帮我优先安排核心主站,后续问了下目前的流程中有哪些,可以等十月份都出结果了再确认意向,初步谈薪感觉还是很有竞争力的,整体还是聊天为主,体验很好
全部评论
有简历吗
点赞 回复 分享
发布于 09-09 10:03 北京
gk快释放offer吧
点赞 回复 分享
发布于 09-08 23:11 安徽
羡慕
点赞 回复 分享
发布于 09-08 20:13 北京

相关推荐

09-08 21:10
已编辑
华南理工大学 Java
可乐不加冰777:大佬收手吧,别面了,别收割了,给鼠鼠我们一口汤喝
点赞 评论 收藏
分享
1.浏览器从输入url到页面渲染的过程2.浏览器做了哪些工作解析HTML最终形成页面展示(渲染过程)3.对js的解析是解析什么内容4.就是假设我们已经解析完了,不管它是解析什么内容,那解析完之后的话,它其实会有一个事件循环的机制,介绍一下js的事件循环机制5.事件循环在nodejs和浏览器的区别- 宏任务:浏览器是 “单队列”,Node.js 是 “多阶段队列”(按 timers → poll → check 等顺序执行);- 微任务:Node.js 比浏览器多一个 nextTick 队列,且优先级最高;- 执行节奏:浏览器是 “1 个宏任务 → 所有微任务”- Node.js 是 “1 个阶段的宏任务 → nextTick → 其他微任务 → 下一阶段”。6.vue3的vue2响应式的话有哪些区别7.vue3实现一个自定义的响应式的数据应该怎么实现日常开发优先用 Vue 内置的 reactive/ref,兼容性和功能更完善8.对于引用类型和基础类型的ref 实现上有什么区别基础类型通过包装对象实现响应式,引用类型则借助 reactive 转换为代理对象,两者最终都通过 .value 访问,但内部处理机制不同。基础类型(如 number、string)会被包装成含 value 属性的对象,ref 直接对这个 value 属性用 Proxy 拦截 get/set,确保修改时触发响应。引用类型(如对象、数组)传入 ref 后,会先被 reactive 转为响应式代理对象,此时 ref 的 value 指向这个代理对象,修改属性时实际触发的是 reactive 的响应逻辑。9.vite的热更新为什么比webpack快10.vite是怎么支持解析所有文件的为什么11.性能优化的方式,首屏加载优化- 资源层面,优先压缩和拆分资源,如用 Vite/Webpack 拆分代码(Code Splitting),大文件分片加载;- 图片懒加载非首屏图片- 通过 CDN 分发静态资源- 代码层面,路由懒加载(如 React.lazy、Vue 异步组件),移除未使用代码(Tree Shaking),避免大型库全量引入(如用 lodash-es 按需导入)- 缓存层面,设置 HTTP 缓存(强缓存 Cache-Control,协商缓存 ETag),利用 Service Worker 缓存关键资源12.大文件进行分片加载是如何实现的?首先前端获取文件总大小,按固定尺寸(如 1MB)计算分片数量;然后通过 HTTP Range 请求头,每次请求一个分片(如Range: bytes=0-1048575);服务端根据 Range 返回对应片段;前端接收所有分片后,用 Blob 或 ArrayBuffer 合并成完整文件。实际开发中,可结合 Promise.all 控制并发数,避免请求过多阻塞;用 localStorage 记录已下载分片,支持断点续传。例如视频网站加载大视频时,会按时间分片,用户观看时只加载当前需要的片段,既节省带宽也提升加载速度。13.强缓存的,就是说要用强缓存。那你如果强化了之后,那你怎么更新呢?就比如我发了个紧急的 V3版本,你是当前可能强化才能 V1,那我怎么更新到 V3给静态资源(JS/CSS/ 图片等)添加版本标识,如在文件名后加哈希值(app.8f3d2.js)或版本号(app.v3.js)。构建工具(Webpack/Vite)可自动生成哈希,哈希值随文件内容变化而变。当发布 V3 版本时,修改的资源会生成新哈希文件名,浏览器请求时发现是新路径,不命中强缓存,会从服务器拉取最新文件;未修改的资源因哈希不变,仍可利用缓存,兼顾性能与更新。14.标识是在哪里做的?构建工具(如 Webpack、Vite)会在打包时,根据文件内容生成唯一哈希值(如 MD5),并添加到文件名中(如index.abc123.js)。这一步由构建工具的配置实现,比如 Webpack 的contenthash、Vite 的rollupOptions.output.assetFileNames。同时,HTML 文件作为入口,引用这些带哈希的资源路径(如<script src="index.abc123.js">)。当文件内容更新,哈希值变化,HTML 中引用的路径也会更新,浏览器会识别为新资源,触发重新请求。15.那如何要设置html的强缓存,如何做到强制更新?1. 配置html的强缓存响应头(catche-control、expires)2. 叠加协商缓存(ETag、Last-Modified)(强缓存过期后,浏览器会主动请求服务器。此时需通过「协商缓存」让服务器判断 HTML 是否有更新:若未更新,返回304 Not Modified,浏览器继续用缓存;若已更新,返回200 OK和新 HTML。)3. 若发布紧急版本(如从 V1 更到 V3),即使强缓存没过期,也需让浏览器立刻放弃旧缓存、请求新 HTML。关键是让浏览器认为 “新 HTML 是一个完全不同的资源”,具体有两种落地方式:方式 1:给 HTML 文件名加版本 / 哈希(推荐,无兼容问题)直接修改 HTML 的文件名,在发布新版本时添加版本号或哈希,例如:- 旧版本:index.html → 新版本:index.v3.html- 同时,需修改服务器的 “默认访问路径”:用户访问https://xxx.com/时,服务器默认返回index.v3.html(而非旧的index.html)。原理:浏览器缓存是按 “资源 URL” 存储的,index.html和index.v3.html是两个不同的 URL,即使旧的index.html还在强缓存时效内,浏览器访问新 URL 时也会直接请求服务器,获取最新 HTML。方式 2:给 HTML 路径加查询参数(简单,但需注意服务器配置)不修改文件名,而是在 HTML 的访问路径后加版本参数,例如:- 旧版本:https://xxx.com/index.html → 新版本:https://xxx.com/index.html?v=316.RAG(检索增强生成)到底是什么东西,工作原理怎么样17.为什么要做向量化的过程18.RAG减少的原因是什么,还有什么方式可以减少幻觉19.就是你是如何去了解一个全新的一个技术领域的,就是你是怎么去做对应的一个学习的?有没有一些学习的方法论可以分享一下20.分享一下Mi-BRAG21.手撕:要实现支持并发限制和先进先出(FIFO)的异步任务调度器class TaskScheduler {constructor(concurrency) { }addTask(task) { }runTasks() { }22.追问:task返回什么类型任务执行失败了上面功能能执行么,promise如何处理失败,但是不阻塞队列->finally()catch的时候,能否将其重新加入队列重试📍面试公司:字节跳动-今日头条💻面试岗位:前端开发
查看24道真题和解析
点赞 评论 收藏
分享
评论
点赞
24
分享

创作者周榜

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