字节跳动前端面经(1h版)

1.浏览器从输入url到页面渲染的过程
2.浏览器做了哪些工作解析HTML最终形成页面展示(渲染过程)
3.对js的解析是解析什么内容
4.就是假设我们已经解析完了,不管它是解析什么内容,那解析完之后的话,它其实会有一个事件循环的机制,介绍一下js的事件循环机制
5.事件循环在nodejs和浏览器的区别
6.vue3的vue2响应式的话有哪些区别
7.vue3实现一个自定义的响应式的数据应该怎么实现

8.对于引用类型和基础类型的ref 实现上有什么区别?
基础类型通过包装对象实现响应式,引用类型则借助 reactive 转换为代理对象,两者最终都通过 .value 访问,但内部处理机制不同。

9.vite的热更新为什么比webpack快?
10.vite是怎么支持解析所有文件的为什么?
11.性能优化的方式,首屏加载优化
资源层面,优先压缩和拆分资源,如用 Vite/Webpack 拆分代码(Code Splitting),大文件分片加载;图片懒加载非首屏图片。通过 CDN 分发静态资源。代码层面,路由懒加载(如 React.lazy、Vue 异步组件)。缓存层面,设置 HTTP 缓存(强缓存 Cache-Control,协商缓存 ETag)

12.大文件进行分片加载是如何实现的?
首先前端获取文件总大小,按固定尺寸(如 1MB)计算分片数量;然后通过 HTTP Range 请求头,每次请求一个分片(如Range: bytes=0-1048575);服务端根据 Range 返回对应片段;前端接收所有分片后,用 Blob 或 ArrayBuffer 合并成完整文件。
13.强缓存的,就是说要用强缓存。那你如果强化了之后,那你怎么更新呢?就比如我发了个紧急的 V3版本,你是当前可能强化才能 V1,那我怎么更新到 V3?
给静态资源(JS/CSS/ 图片等)添加版本标识,如在文件名后加哈希值(app.8f3d2.js)或版本号(app.v3.js)。构建工具(Webpack/Vite)可自动生成哈希,哈希值随文件内容变化而变。

14.标识是在哪里做的?
构建工具(如 Webpack、Vite)会在打包时,根据文件内容生成唯一哈希值(如 MD5),并添加到文件名中(如index.abc123.js)这一步由构建工具的配置实现。

15.那如何要设置html的强缓存,如何做到强制更新?

16.RAG(检索增强生成)到底是什么东西,工作原理怎么样
17.为什么要做向量化的过程?
18.RAG减少的原因是什么,还有什么方式可以减少幻觉
19.就是你是如何去了解一个全新的一个技术领域的,就是你是怎么去做对应的一个学习的?有没有一些学习的方法论可以分享一下
20.分享一下Mi-BRAG
21.手撕:要实现支持并发限制和先进先出(FIFO)的异步任务调度器   
22.追问:task返回什么类型
    任务执行失败了上面功能能执行么,promise如何处理失败,但是不阻塞队列->finally()
    catch的时候,能否将其重新加入队列重试

📍面试公司:字节跳动-今日头条
💻面试岗位:前端开发#牛客AI配图神器#

#发面经攒人品#
全部评论
同学,瞅瞅我司,医疗独角兽,校招刚开,名额有限,先到先得,我的主页最新动态,绿灯直达,免笔试~
1 回复 分享
发布于 09-13 08:38 广东
这个一面强度有点大哟
点赞 回复 分享
发布于 09-17 15:07 湖北
第八个应该不同版本的实现不同,目前最新的是:ref对于基础类型和引用类型都是通过RefImpl这个类实现的https://github.com/vuejs/core/blob/main/packages%2Freactivity%2Fsrc%2Fref.ts#L119-L119
点赞 回复 分享
发布于 09-17 08:51 浙江
过了吗
点赞 回复 分享
发布于 09-10 16:50 山东
佬这是几面啊
点赞 回复 分享
发布于 09-10 16:40 广东
base南京OD,机会多多
点赞 回复 分享
发布于 09-09 19:34 贵州
大佬
点赞 回复 分享
发布于 09-09 18:52 法国

相关推荐

发个面经,攒攒人品昨天面的,答的不好,实在是空窗期太久了,太久没面试了,中间只做了笔试和测评,导致丧失了很多对自己的水平认知发现八股还是有很多地方只停于表面的,一旦深入问就不知道了,实习经历的准备也不够,就像这个微信推送,我只知道前端要做什么,却没有梳理好完整的链路,还得继续努力啊!1.具体在做小程序的什么?(我在实习中提到【公告通知】这个功能)2.微信订阅消息推送的链路,用户怎么收到推送的?想了解用到什么协议3.get和post怎么理解?4.get和post在网络传输链路上有什么区别?5.小程序上也有url的长度限制吗?(上个问题我说到了get的url长度限制)这个限制是谁做的?6.简单请求和飞简单请求?7.自定义请求头是指什么?(上个问题我提到复杂请求可能是包含自定义请求头)8.get幂等,post非幂等,主要什么原因导致的这种区别?9.URI是指?(我提到uri,面试官说没有太理解到uri的概念)所有请求都一定是返回uri吗?10.get请求的默认缓存能力?11.浏览器缓存有磁盘缓存和内存缓存,这个了解吗?浏览器怎么控制这两个缓存空间?两个的主要作用?12.强缓存和协商缓存什么时候走内存/磁盘缓存?13.settimeout时间不准确的问题?14.setTimeout 与浏览器渲染帧率的关系?15.requestAnimationFrame怎么解决settimeout时间不准确的问题?16.async/await和promise怎么解决回掉地狱?两者有什么区别?17.两个数组相加在浏览器中执行结果:[1, 2, 3] + [4, 5, 6]?18.解构赋值通过什么触发的?解构赋值是什么?(这个问题是因为我上个问题做错了,我以为两个数组相加就直接是对应索引值相加,解释时提到【解构赋值】,所以面试官才问的)19.用var实现const,写伪代码即可20.实现promise.all
一人一道大厂面试题
点赞 评论 收藏
分享
评论
17
60
分享

创作者周榜

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