#

4399

#
114961次浏览 1787人互动
此刻你想和大家分享什么
热门 最新
70场面试,复盘我遇到的有趣问题(一)
        一直面试只能让你把会的背的更熟,但想进步还是得回头看看不会的问题。        今天回顾一下我遇到的一些有价值的问题,结合我自己的一些理解对这些问题尝试解答一下,相信对大家一些知识的理解也会有些帮助(有问题的话欢迎指出)。有用的话感谢大家点赞收藏送花~1.(滴滴提前批二面)Vue开启了keep alive之后会经历哪些生命周期?缓存了什么东西?        这个点我自己是没有仔细思考过的,当时面试官提问vue的生命周期,我提到了Vue开启keep alive前后生命周期的不同,面试官拓展的问了这个问题。        背八股的时候都背过,使用组件包裹后可以在切换路由的时候不必销毁组件。并且会多出两个生命周期:activated和deactivated。其中activated在组件渲染的时候执行,deactivated在组件隐藏时执行,因此将这两个生命周期对比mounted和beforeDestory来学习。组件在初次渲染的时候会经历从beforeCreate到mounted这整个阶段,在后续切换的过程中则只会经历activated,随后的beforeUpdate和updated都会经历,隐藏时经历deactivated,最后销毁的时候才会经历beforeDestory和destoryed。        那么缓存了什么?我们知道在mounted阶段,虚拟DOM转为真实DOM,此时data,method,虚拟DOM都有了;而activated阶段可以不经历前面的钩子,直接挂载DOM,说明keep-alive缓存了虚拟DOM,并且还有所有的数据/方法,也就是缓存了组件实例。        如果面试阶段没有见过这个题,可以从每个生命周期干了什么开始联想,其中走到mounted阶段拥有了什么,那么actived阶段就也会有这些。2.(4399一面)http1.1的情况下,一个网页的图片是一张一张加载还是一批一批加载的?        首先回顾一下http1.1的特性:    ● 默认长连接,新增响应头Connection:keep-alive字段,保持TCP连接不断开    ● 管道化:基于上面长连接的基础,管道化可以不等第一个请求响应继续发送后面的请求,但响应的顺序还是按照请求的顺序返回    ● 缓存处理:新增catch-control字段    ● 断点传输机制。文件传输时如果遇到网络故障,可以从已经上传/下载好的地方继续请求,不用从头开始        其中第二点提到的管道化基本可以解答整个问题,虽然可以发送多个请求,但是返回的顺序还是有序的。因此虽然TCP最大连接数有6~8个,但是返回时还是顺序返回的。        但是需要注意,如果严谨一点的话还是要考虑一下预加载的情况。例如,当浏览器解析到 HTML 中的标签时,它可能会提前发起对指定资源(包括图片)的请求,这样在真正需要显示该图片时,可能已经加载完成或者部分加载,从而在一定程度上出现看似一批加载的情况。3.(Minimax一面)eval和new Function的this指向问题:        eval的this指向可以看这篇,很详细:https://ayk.moe/articles/javascript-change-this-in-eval-function/index.html        简单的说:eval函数只要是在全局直接运行或者是通过一个函数调用执行、作为对象属性被调用执行这种间接的执行方式,他的指向都是全局作用域。他不能直接被call/bind/apply改变this指向,改变的思路是在eval外面包一层函数,改变外面这个函数的this指向。        new Function:使用 new Function 创建的函数,它的 [[Environment]] 指向全局词法环境,而不是函数所在的外部词法环境。因此,我们不能在 new Function 中直接使用外部变量。        如果你对这块不熟悉,来看看这个:https://zh.javascript.info/new-function4.(Minimax二面)React:在if else里书写hooks,为什么不可以?        我用我自己比较容易理解的话术来简述一下关键原因,这里面的具体细节还是比较复杂的,有兴趣的牛u可以找找资料了解一下。        react的fiber树有两颗:        current fiber树: 当完成一次渲染之后,会产生一个current树,current会在commit阶段替换成真实的Dom树(可以看成虚拟dom转真实dom)。        workInProgress fiber树: 即将调和渲染的 fiber 树。再一次新的组件更新过程中,会从current复制一份作为workInProgress,更新完毕后,将当前的workInProgress树赋值给current树。        workInProgress tree上有一个memoizedState属性,在函数组件中,memoizedState在一次调和渲染过程中,以链表的形式存放hooks信息。        每一个hook函数执行,都会产生一个hook对象,里面存放了hook的当前信息,然后会以链表的形式串联每个hook对象,并赋值给workInProgress的memoizedState。        每次组件更新的时候,会先复制一份current tree到workInProgress tree,此时在workInProgress上进行更新。一旦在条件语句中声明hooks,在下一次函数组件更新,hooks链表结构,将会被破坏(某个节点可能被跳过),current树的memoizedState缓存hooks信息,和当前workInProgress不一致,如果涉及到读取state等操作,就会发生异常。                以上很多是自己的理解,可能讲述不准确但有助于自己理解,欢迎评论区留言指出错误~#面经##前端##滴滴##4399##minimax##24届软开秋招面试经验大赏#
点赞 评论 收藏
分享
头像
08-21 00:19
已编辑
门头沟学院 前端工程师
8.20 4399前端开发秋招一面
面试官问的问题真的很广,反问问了一下原因,他说你可能接触不到,来了也可能用不到,但是想看下了解知识面的广度,看下上限在哪。所以大厂实习也不完全是优点无手撕,全程45分钟左右1.什么时候开始接触前端2.怎么系统学习前端3.node接触过吗(没有。。)4.for in和for of的区别。for of是否能遍历对象,for in能不能遍历map5.CJS和ESM的区别6.CJS和ESM能不能在浏览器直接使用7.React应用能不能被搜索引擎搜索到(一开始没理解,换了个问法):网页源码打开,内容是写在HTML里还是JS里?写在JS里能不能被浏览器抓取到,想要被抓取到应该怎么办?搜索引擎爬虫主要通过抓取 HTML 内容来索引网页。React 应用通常是单页应用(SPA),初始加载时只获取一个 HTML 页面,后续的内容更新通过 JavaScript 动态加载。这使得搜索引擎爬虫在首次访问时可能只能看到一个几乎空白的页面,而无法发现通过 React 渲染出来的动态内容。解决方案:服务端渲染(SSR)原理:服务端渲染是在服务器端将 React 组件渲染为完整的 HTML 页面,然后将这个 HTML 页面发送给客户端。这样,搜索引擎爬虫在访问页面时,能够看到完整的内容,就像访问传统的多页应用一样。预渲染原理:预渲染是在构建阶段预先渲染 React 应用的一些关键页面,并生成静态的 HTML 文件。这些 HTML 文件可以被部署到服务器上,供搜索引擎爬虫抓取。8.为什么用到微前端?微前端实现原理?9.知道webComponent吗(No)10.TS的type和interface区别11.304状态码12.http1.1的情况下,一个网页的图片是一张一张加载还是一批一批加载13.平时使用ai工具吗,如何使用ai工具解决项目难点14.当一个聊天页内容特别多或者列表内容特别多时,滚动会发生卡顿,这个怎么解决?#4399##前端##秋招#
查看3道真题和解析
点赞 评论 收藏
分享
头像
09-14 10:38
已编辑
门头沟学院 前端工程师
9.4 4399前端秋招三面
4399流程推进确实慢。。。而且比较奇怪的是二面是hr面,问薪资地点之类的,我以为是我薪资喊太高了要给我挂了,但是流程一直没终止,二面结束后四五天约三面。三面两个面试官一起来,全程问业务方向的东西,那我就太能说了,夸夸一顿输出。目前等流程推进中1.提到了bug估分比,这个是怎么算的2.线上化率100%是什么意思3.bug估分比怎么样算好怎么样算差,这个界限是否太过严格4.怎么样去界定一个bug5.估分比有什么用处6.怎么样能够让这个估分比降低一些7.自己会先去跑一遍测试用例的话,整个开发周期是否会比较长8.需求排期评估是自己来吗,会把跑测试用例的时间也排进去吗,最小排期粒度是小时还是天9.比如一天的排期产生了一个bug,那估分比不是就很高吗,这样合理吗10.这套机制运行起来对团队是正向作用吗11.会不会产生有人为了降低估分比跟qa交易一下给点好处的情况(离谱)12.边开发边跟别人语音沟通问题的模式好像不够敏捷13.如果紧急接到一个需求需要一天搞完,如何安排自己的日程14.其他人有没有吐槽过这个模式,觉得有不合理的地方,你自己怎么看15.这样会不会造成有的人为了估分比低一些只接简单需求,难的没人敢接16.为什么想要离开字节的团队(其实没想离开,只是并行秋招)17.对第一家公司的要求,如果企业达不到这个要求怎么办(那还来干啥)18.在字节这边自己技术成长是怎么样的19.几点下班,有强制要求吗20.为什么项目会用到微前端21.如果有个老系统有很多模块,需要逐步迁移,这个情况适合微前端吗(撞枪口了这不,刚好是我在做的)22.有没有遇到一些困难23.garfish是字节自研的吗24.你觉得自己是技术向的吗25.为什么选择走技术路线呢,感觉你比较外向比较open26.你会在技术上一直深入吗,还是后续有别的打算27.团队对你的评价怎么样,ld夸你啥了28.简单说一下你做的总结29.你觉得你现在在的团队最大的问题是什么(给问到了,好像只有好的,想半天没想到差在哪)30.自己做的总结复盘对其他人有影响吗31.未来两到三年有什么规划吗这种面试也太爽了吧  #4399# #前端# #秋招# #软件开发笔面经#
查看31道真题和解析
点赞 评论 收藏
分享
4399一面Ver.回忆(类面经)C++
我的评价是:好脑子不如烂笔头/笑感觉跟大家的好多一面很类似(只不过笔者这里90%八股 + 10%寒暄)没有问道项目经历/游戏经历,maybe二面问(或者没后续)开题,纯回忆版如有雷同,我脑子好 /笑16道题,偏八股1.说一下const、define的区别(翻了好多面经,CPP的大家都被问道)2.指针的++、- -说一下(同上)3.static 和 普通变量的区别(同1)4.说一下for循环和递归的区别(既然强调了for循环,感觉稍微多说下for能确定次数这点吧)5.说一下野指针是什么、怎么产生的(虽然知道那个理,但有点说high了,在那说起了大白话/魔爪全责)6.讲一下你知道的设计模式(同1,好多人都被问道)7.讲一下你理解的单例模式(6的衍生,感觉难得也不能问你)8.讲一下平衡二叉树&二叉搜索树(脑子有点兴奋,没比较正常的说出来二叉搜索树的所以然)9.讲一下什么时候会用到平衡二叉树(回答的不好,笔者说“需要用到‘左右子树高度相差不超过1’的时候”,纯纯说了遍特性)10.(忘了。。)11.说一下你知道的排序算法(说就行,但笔者建议说的时候绘声绘色些,别光说“快排、冒泡、归并、希尔..”,可以稍微扩充下“比如说‘快排会分割、用到一种分治的思路’,‘归并是把一个数组咔咔(笔者说的时候甚至挥舞起了手刀)然后再排’、‘数据比较多的时候可以用下外部排序’”)12.(看好多🐂友下一个一般是讲讲“XX排序”,可能笔者前面说太多了,面试官就自动换问题了)你对多线程有什么了解(明确说不了解,但笔者依稀记得C++11新加了东西)13.说一下多线程并发策略之类的问题(当时懵了:我都说我不会了,你害问)。笔者这里还是接了下来——按照自己的理解举了个刚开服可能会被冲爆的例子,然后要处理好这个问题,顺便提了嘴“游戏上之前进行压力开发”巴拉巴拉的14.你对C++网络编程了解多少(笔者光提了嘴socket,这个没背,笔者活该)15.讲一下TCP/UDP协议(绘声绘色的讲)我尼玛,字数不够了你敢信?后面没有几题了,发C站吧#4399内推4399春招##4399##一面##24届软开秋招面试经验大赏##春招#   https://blog.csdn.net/m0_63356844/article/details/136935305?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136935305%22%2C%22source%22%3A%22m0_63356844%22%7D
点赞 评论 收藏
分享
04-01 14:57
已编辑
华南理工大学 深度学习
4399c++游戏开发一面
阿森的牛客账号:哈希查找效率高,但是有点费空间,毕竟需要额外开两倍的数组(Java是这样)
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客企业服务