首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客374989757号
风险管理
发布于江苏
关注
已关注
取消关注
@LINK333:
字节面试官:虐你如呼吸
作者:我真的很困前言:在高铁站接到字节HR打来的电话时,我整个人都是蒙的,我当时的想法是:我?字节?我吗?HR小姐姐略带高冷的声音很快把我拉回了现实,问我什么时候可以面试,我回了个下周,于是面试就定在了周一。当时心想:一周的复习时间,应该差不多够了吧?抱着这种莫名自信的想法,和看了一周的面经以及基础八股(因为大家都说大厂考基础),我很快就迎来了自己的“挨打”时间。(技术大厂,前后端测试捞人,感兴趣来)正文:视频会议接通的那一刻,我仿佛一下子就回到了当年的高考考场,真是紧张又刺激。反反复复念叨了好几次的自我介绍也说得磕磕巴巴。面试官的第一个问题是:从输入URL到出现页面都发生了什么?越详细越好。这个问题要是只有前半句的话,那简直就是往枪口上撞,妥妥的送分题,可以说是正中我的下怀。我之前写过一篇文章就是介绍这个大家有兴趣可以看看:总的来说就几个步骤:检验URL是否合法查看本地是否有该页面的缓存,有的话就不发送请求,否则发送(说这个纯属给我自己挖坑)Dns解析ip地址Tcp三次握手建立tcp链接发送http请求服务器响应数据浏览器渲染页面Tcp四次挥手断开连接第一步没啥好说的,第二步纯属是八股文看来的,结果面试官一细问,我立马被按在地上摩擦。面试官:你说会查看本地是否会有该页面的缓存,那请问页面的缓存是缓存在什么地方?我: 呃...这个...这个没有详细了解过,所以...所以不是非常了解。(面试官微微一笑)正确答案:页面的缓存有以下三种情况:浏览器缓存代理服务器缓存CDN(内容分发网络)缓存通常情况下,第一种是用的最多的也是最常见的情况。浏览器缓存是最直接的一种缓存形式,浏览器会在用户的设备上(通常是硬盘或SSD)保存最近访问过的网页的部分或全部内容,包括HTML、CSS、JavaScript文件以及图片等资源。浏览器使用缓存可以显著提高加载速度,并减轻服务器的负担。当浏览器需要确定是否使用缓存时,它会根据HTTP响应头中的缓存控制信息(如Cache-Control和Expires头)来决定缓存的有效期。如果缓存有效,浏览器将直接使用缓存的内容;如果缓存过期或者没有缓存,则会向服务器发送新的请求。这涉及到浏览器的强缓存与弱缓存的机制,我会单独出一篇文章详细给各位读者姥爷讲一讲。需要注意的是,浏览器缓存并不是永久性的,它会根据设置的缓存策略自动更新或清除。此外,用户也可以手动清理浏览器缓存。到这里,面试官的下马威算是给到了,如果说刚刚我还是个刚上战场的菜鸟新兵的话,那么此时此刻我已经被吓破胆的败军了。面试官:那你详细讲一下session和cookie的区别吧我:(说好的面试不会一直问不会的吗?这真不是在追着我打?)其实说实话,这部分内容我是看过的,但可惜时间有点久远,而且还没复习,加上紧张得一批,脑子一团浆糊,各种debuff算是叠满了。慌不择路的我竟答成了sessionStorage和cookie的区别,但也只是擦到点边,完全没说明白关键点。不仅如此,这个问题在后来盛趣游戏的面试中也遇到了,所以我认为很有必要给各位看官讲清楚。Session (服务器端)定义:Session是一种服务器端技术,用于跟踪用户的会话状态。当用户与Web应用程序交互时,服务器会创建一个唯一的会话ID,并将其存储在服务器上。这个会话ID通常通过cookie发送给客户端,以便后续请求能够识别用户。作用:维护用户的登录状态、购物车内容等信息。生命周期:通常在一个用户会话期间持续有效,直到用户关闭浏览器或服务器端会话超时。2. sessionStorage (客户端)定义:sessionStorage是Web Storage API的一部分,用于在浏览器的一个会话(即从打开浏览器到关闭浏览器的期间)内存储数据。作用:存储临时数据,如表单数据、用户偏好设置等。应用场景:表单数据暂存:当用户填写表单时,可以暂时保存数据以防意外丢失。用户界面状态:保存用户界面的状态,如折叠菜单、滚动位置等。游戏进度:在单个会话中保存游戏进度或分数。生命周期:数据只在同一个窗口或标签页内共享,并且在窗口或标签页关闭后会被清除。3. localStorage (客户端)定义:localStorage同样是Web Storage API的一部分,用于持久性地存储数据。作用:存储长期数据,如应用配置、用户设置等。应用场景:用户偏好设置:存储用户的偏好设置,如主题选择、字体大小等。离线应用数据:对于离线可用的应用程序,可以将必要的数据存储在localStorage中。缓存数据:缓存经常使用的数据,减少服务器请求,提高性能。生命周期:除非被主动删除,否则会一直保留。4. Cookies (客户端)定义:Cookies是一种小型文本文件,用于在客户端和服务器之间传递信息。作用:用于跟踪用户状态、实现身份验证等功能。应用场景:用户身份验证:保存用户的登录状态,例如记住用户名和密码。会话管理:存储会话ID,用于服务器端跟踪用户会话。个性化设置:保存用户的偏好设置,如主题选择、语言偏好等。跟踪统计:收集用户行为数据,用于分析和改进网站。生命周期:可以设置为会话级别(默认)或具有明确的过期时间。大小限制:每个域名下的cookies总大小通常限制在4KB左右。5. IndexedDB (客户端)****定义:IndexedDB是一个低级API,提供了客户端侧的数据存储功能,支持复杂的结构化数据和事务处理。作用:适用于需要更复杂数据结构的应用程序,如离线应用或需要大量数据存储的应用。应用场景:离线应用:存储大量数据,使得应用能够在离线状态下继续运行。大型数据集:存储大量结构化的数据,如用户上传的照片、视频等。实时应用:对于需要实时更新的应用程序,如聊天应用或协作编辑工具,可以利用IndexedDB来存储和同步数据。生命周期:持久性存储,除非被显式删除。在此之后,又问了一些类似于“webpack的loader和plugin的区别”,“为什么相比于webpack,vite的打包速度更快”“如果没有koa的cors,你该如何处理跨域问题”和“vue响应式原理”等问题。这部分的内容我会单独写,尽可能去讲清楚。算法大数字相加问题:大家都知道在js中数字的最大值不能超过2^53,但是某些情况下可能不得不去进行一些操作导致数字大于这个值,请问在这种情况下该怎么将他们相加(不允许使用bigInt类型)解答:这道题能做的前提是给出的参数必须是字符串类型,否则哪怕就是读取也会出错。之后的解题思路是先把短的数字补0,直到和长数字一样长,这样做的目的是为了方便后续的遍历。之后就是从尾到头遍历两个字符串,并相加,把结果拼成字符串并返回。需要注意的是返回前检查进位是否还有数字,有的话需要加上去,我当时就忘了,多亏面试官提醒function addLargeNumbers(num1, num2) { let carry = 0; // 进位 let result = ""; // 结果字符串 // 获取最长的字符串长度 const maxLength = Math.max(num1.length, num2.length); // 补零,确保两个数字字符串长度相同 num1 = num1.padStart(maxLength, "0"); num2 = num2.padStart(maxLength, "0"); // 从最低位开始逐位相加 for (let i = maxLength - 1; i >= 0; i--) { let sum = parseInt(num1[i], 10) + parseInt(num2[i], 10) + carry; carry = Math.floor(sum / 10); // 更新进位 result = (sum % 10) + result; // 添加到结果字符串 } // 如果最后还有进位,需要添加到结果字符串开头 if (carry > 0) { result = carry + result; } return result;}版本号排序问题:给你一个数组,每个元素都是字符串类型的版本号,需要把版本号从小到大排序后返回。需要注意的是,“1.45”指的是第一代的第45版,所以“1.8”要比“1.45”小(这么说来13.11确实比13.8更大了)。解答:这题的解题思路应该是有挺多的,我提供一个我使用的比较简单的方法,首先遍历给的数组,把每个元素拆分成一个数组,暂且称之为子数组,子数组的每个元素都是版本号的一位数,如图:然后拿着父数组遍历。其实面试的时候只给了两个元素,但其实只需要把函数作为参数传给sort就可以对整个数组实现排序了,这里我给出一份完整的代码function versionSort(arr) { // 自定义比较函数 function compareVersions(a, b) { const partsA = a.split(".").map(Number); const partsB = b.split(".").map(Number); // 比较每个部分 for (let i = 0; i < partsA.length; i++) { if (partsA[i] !== partsB[i]) { return partsA[i] - partsB[i]; } } // 如果所有部分都相等,则认为版本号相等 return 0; } // 使用自定义比较函数对数组进行排序 return arr.sort(compareVersions);}总结:虽然此次面试肯定是没戏唱了,但也从中收获到了很多东西,最重要的一点就是让我看清了自己和一线大厂之间的差距,面试官说:“其实你的表现还是可以的,反应很快,但是你太紧张了,而且很多东西都只是用过,而不清楚具体的原理,这对于我们来说是不够的,在工作中,你用到的框架可能就是我或者某个同事做的,我们希望的是能够了解原理,理解这个地方为什么要这样写,这样你才能去把框架的功能完全发挥出来。而不仅仅是‘我用过’,我们更希望你能知其所以然”。我相信有很多和我一样平时只在意coding的技能,xx功能怎么用代码实现,或则xx算法通过什么代码才能更快解出来,而对于浏览器,工程化等问题不屑一顾,甚至觉得这不过是旁门左道,面试的时候或许不会问,但是实际上大厂对于网络,浏览器,工程化等内容有着极高的要求。反而对于一些代码方面的考的比较少,就算是考察这部分内容也会更倾向于框架源码或者“手撕promise”等问题。至少在我的大厂面试经历中没有遇到过诸如于“如何把字符串变数组”或者“怎么让元素垂直水平居中”之类的问题。或许当我在高铁站接到面试通知电话的那一刻,已经默认我完全掌握了这部分内容了。希望大家能够从我的面试经历中汲取经验,也祝愿大家早日上岸!
点赞 546
评论 27
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
01-18 17:14
清华大学 Java
java简历里面第一个项目做什么比较好呢
给大家推荐一个难度还行的项目。项目简介:设计并实现一个高并发分布式秒杀系统,支持商品秒杀活动,具备高并发下的稳定性、可扩展性与数据一致性保障。核心功能:秒杀活动管理:创建活动、配置库存、设置限购规则秒杀下单:用户请求限流、排队、下单、支付订单处理:异步生成订单、库存扣减、超时自动取消秒杀结果查询:实时返回抢购结果与订单状态技术亮点:高并发限流:使用 Redis + Lua 脚本实现库存预扣与原子性操作,避免超卖消息队列异步下单:使用 RocketMQ/Kafka 进行异步订单入库与库存扣减,削峰填谷分布式锁与幂等:使用 Redisson 实现分布式锁,保证秒杀过程的幂等性与并发安全缓存与热点数...
简历第一个项目做什么
点赞
评论
收藏
分享
今天 13:01
滴滴_移动端研发工程师(准入职员工)
腾讯内推,腾讯内推码
腾讯IEG 后端开发实习面经流程很快,效率棒棒哒10.10投递,10.11日过初筛,约一面到10.13,10.16就结束hr面了,6天速通一面 10.13挑一个项目讲打开项目github看,对照源码问了些问题Redis 用过什么数据结构Reids怎么实现分布式锁10亿条消息去重说下去会好好看看我的github(开源贡献比较多)算法题二面 10.15聊了下项目一聊了下项目二gmp调度模型go gctcp可靠性有哪些机制大模型的原理兴趣爱好玩啥游戏(金铲铲,暗区突围,王者荣耀,皇室战争,总之腾讯游戏玩的雀实多,也充了不少钱其实)Hr面 10.16等offer中。。10.24 offer腾讯2027...
点赞
评论
收藏
分享
2025-12-29 13:30
安阳学院 后端工程师
27学院本找寒假日常简历求批
项目就是点评和外卖包装,目前在boss上投了100左右,就10个要简历的,也都不回了
点赞
评论
收藏
分享
2025-12-24 17:16
湖南软件职业学院 前端工程师
线上面了我快2个小时,最后居然不要我
我选体验最差:腾讯外包线上面试,应该是腾讯甲方来面试我,我自诉在字节短期外包项目,表达字节前端技术基建不错,很多都工具自动处理,他表达很大的兴趣,问了很多细节。我做了才3个月,哪里知道很深的细节,回答也是打哈哈。然后在问我,原型链,class,防抖,节流手搓代码。正正面试2个小时,我感觉回答还不错,这次,只要不考虑我的年龄应该是稳了。我的优势是便宜,经验丰富,主要是物美价廉。今天回复我不通过,不通过就被面试那么久,开始就拒绝我啊。体感最差,给我希望,立马浇灭。
文化小流氓:
你适合腾讯正编,外包不敢要
查看4道真题和解析
点赞
评论
收藏
分享
01-19 10:58
迅雷_后端开发工程师(准入职员工)
shein内推,shein内推码
整体的感受还是拆分四个板块吧 1.个人成长-目前业务也在快速扩张期,有很多空白板块可以继续进行搭建,所以在背靠跨境的业务的同时也是可以积累非常可视化的经验,数据分析,项目管理,团队管理,绩效达成落地方案,都是必须需要掌握的技能 2.工作氛围-没有PUA也没有精神内耗,团队偏年轻化领导接近一线业务,没有精神鸿沟的同时具有亲和力的,下班时间和同事相处十分融洽,所以从整体感受来讲会比较轻松 3.福利待遇-位置在四海城附近整体周围的基础设施还是比较齐全,附近大型商场,免费下午茶 4.思维转变-从怕犯错再到勇于去尝试,只要在shein能够有想法且方案足够落地,即使会有踩坑,环境上大家还是比较包容,且结果...
SHEIN希音公司福利 332人发布
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
备战春招,网申一键填写工具,发布了!!!
3.6W
2
...
27双非非科班4段实习从字节tt到腾讯wxg
5341
3
...
第一次被同事气笑了
3890
4
...
我爸对计算机行业的看法,是否准确?
3752
5
...
字节校招landing实感
2907
6
...
专科工作一年后的心里话
2631
7
...
多益可以去吗
2571
8
...
在抖音上认识的姐姐太疯狂了
2451
9
...
AI coding时代,前端已死?
2418
10
...
拼多多被罚10万块,啊这...
2208
创作者周榜
更多
正在热议
更多
#
哪些公司开春招了?
#
5279次浏览
94人参与
#
实习教会我的事
#
50366次浏览
390人参与
#
上班以后,你还有哪些坚持的爱好?
#
4775次浏览
140人参与
#
为了实习逃课值吗?
#
61550次浏览
516人参与
#
你都在哪些场所面过试?
#
13067次浏览
183人参与
#
拼多多工作体验
#
43914次浏览
283人参与
#
工作压力大怎么缓解
#
135182次浏览
1197人参与
#
AI coding的好用工具分享
#
11774次浏览
279人参与
#
实习怎么做才有更好的产出
#
7885次浏览
167人参与
#
找工作以来,你最看不惯__
#
7357次浏览
196人参与
#
实习生工资多少才算正常?
#
8916次浏览
168人参与
#
你最近因为什么迷茫?
#
24715次浏览
390人参与
#
实习离职怎么跟领导说
#
75161次浏览
418人参与
#
你给AI提过哪些离谱的需求?
#
4093次浏览
139人参与
#
工作一周年分享
#
49496次浏览
251人参与
#
牛客AI文生图
#
19161次浏览
225人参与
#
领导做过最不靠谱的事
#
8265次浏览
167人参与
#
xxx岗位的一天
#
41536次浏览
275人参与
#
实习学不到东西怎么办?
#
270794次浏览
2491人参与
#
机械/制造每日一题
#
84416次浏览
1440人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务