快手、金山云、蔚蓝云创、深势科技、滴滴

快手、金山云、蔚蓝云创、深势科技、滴滴 · 面经

完整信息

113 条问法 · 91 道题

本篇目录
[牛泪]这几天陆陆续续的面试挺多挺累的一直没来得及整理,两天四面太疲惫了[牛泪]。现在终于有空回头把面经整理一下了 快手前端实习一面 还有两分钟左右开始的时候面试官去接水了,让我等一下,回来还没到点说让我缓一下准备开始,然后我就深呼吸,面试官就跟我说不用紧张什么的,说现在每次面试都是一次宝贵经历巴拉巴拉...,感觉还没开始面就被打上容易紧张的标签了[牛泪]不是你让我缓一下的吗[牛泪] 1.自我介绍 2.ES6新特性 3.promise.all 和 promise.race的区别 4.promise.all如果里面有一个失败的话是什么结果 5.箭头函数跟普通函数的区别 然后问我还紧张吗,我真没有表现出来这么紧张啊,虽然心里是有一点的[牛泪] 6.讲讲闭包 7.CSS div垂直居中的方式 8.flex等于1的缩写是怎么样的 9.用过哪些react的hooks 10.useEffect的话,如果现在的数组里面是空的,这是第一种情况,第二种情况是如果传的是个对象,第三种情况是如果传的是个函数,它这个执行顺序,它这个执行的逻辑是什么样的 11.git rebase和git merge的区别 12.了解agent的ReAct模式吗 13.项目里agent驱动的这个补全表单的触发逻辑具体是什么意思 14.了解RAG架构吗 15.了解function calling吗 16.拷打项目的流式输出怎么实现的 17.拷打项目的历史对话管理怎么实现的 18.手写节流 基础版的节流写出来了,然后面试官加了个要求,说是实现一个复杂一点的节流,调用之后throttle(A,300) throttle(B,300)只会输出A,多做了一个应用层,这个没有撕出来,然后面试官把答案给贴出来了 function createThrottle(fn, delay, immediate = false) { let lastTime = 0; let timer = null; let lastResult = null; function throttled(...args) { const now = Date.now(); if (immediate) { if (!lastTime \|\| now - lastTime \>= delay) { lastTime = now; lastResult = fn.apply(this, args); } } else { if (!lastTime) lastTime = now; const remaining = delay - (now - lastTime); if (remaining \<= 0) { lastTime = now; lastResult = fn.apply(this, args); } else if (!timer) { timer = setTimeout(() =\> { lastTime = now; timer = null; lastResult = fn.apply(this, args); }, remaining); } } return lastResult; } return throttled; } const throttle = createThrottle((arg) =\> { console.log(arg) }, 300) 19.反问 总结:感觉从一开始就被打上面试紧张的标签了啊,整场问的都是很常规的八股,项目的拷打也是都在预料之内的点,没有场景题的设计,手撕的话也是没有完整写出来最后的节流,感觉面试官没有对我报很大的期望啊。面完一星期了还没反馈,应该是凉了 北京某中小厂前端实习 1.自我介绍 2.介绍项目来源 3.项目里agent驱动的这个补全表单的触发逻辑具体是怎么设计的(发现几乎每场面试面试官问我项目的话都会问这个点,牛友们写简历的时候也可以设置几个引导面试官去问的亮点,这样心里会有些底,提前把这几个亮点的相关实现背熟然后就可以开始吟唱了) 4.文档拆分策略 5.历史会话管理怎么实现的(这个被问的也挺多的) 6.模型切换后上下文怎么处理的,是保留还是清空,具体怎么设计的 7.导入文档用的什么模型 8.模型回复的过程有没有评估RAG的回复质量(我说有用ai写过一个评测脚本) 9.测脚本怎么评价回复是好还是不好的(我说从召回率忠实度等指标判断) 10.具体推理思考的逻辑怎么在前端展示的,流式返回过程中怎么区分思考过程和最终回答的(这个也是我项目中经常被问的一个点) 11.你在这个测试这个对话助手的时候,你有没有发现有一种情况,就是我随着输入的逐渐增加,然后它的大模型回复质量是会越来越低的,有没有这样的情况发生 12.进程跟线程的区别 13.数组跟链表的区别(这给我干哪来了) 14.平常开发vibe coding工具使用过哪些 15.后续的开发的话,有考虑是前端和后端同时进行开发吗 16.反问 总结:这个岗位是全栈偏前端的一个岗位,所以问的不是纯前端技术栈,八股没怎么问一直在拷打项目,反问的时候问业务也是和ai相关的,所以问的时候问ai的东西比较多吧 这个已oc 金山云前端实习一面 面试官比较严肃,答没答上来都不会给很明显的反馈,有点小紧张 1.自我介绍 2.CSS实现垂直水平居中的方法 3.好的,那既然提到了弹性布局,那当我们把Flex设置为一的时候,它对应三个属性的值是什么呢 4.那比如说我们现在想用弹性布局来实现一个这样的三栏布局,就是分为上、中、下三部分,然后上部和底部是固定的高度,然后中间的部分去让它自适应可以怎么做呢 5.如果说中间区域的内容过长,我不想它往下依次滚动,然后把底部挤出去,而想让它在自己中间的区域实现一个滚动应该怎么做 6.有没有了解过BFC呢 7.如果说想要实现响应式布局,大概了解哪些方法呢? 8.ES6新特性了解哪些 9.简单讲一下promise这一块,就是比如说promise它一共有几种状态,然后以及状态之间的关系是什么样的呢? 10.在JS里面我们怎么样去判断一个元素它是否在可视区域呢? 11.在JS里面可能会导致内存泄漏的情况,大概了解哪些呢? 12.然后你可以简单讲一下你对于事件循环的理解,比如说一些微任务、宏任务这些顺序之类的。 13.平时有没有使用过ts,简单介绍一下 14.泛型有了解吗,泛型有哪些使用场景呢 15.你的主要技术栈是Vue这块还是react这块呢? 16.react这一块,比如说你常用到的hooks是哪些呢?你可以简单讲一些,比如说它的使用场景,然后以及区别。 17.react的hooks它为什么不能在条件渲染中去使用呢? 18.在react里面,当我们在渲染一个列表的时候,为什么需要给每一个子元素一个唯一的key值呢?这个key值可以用数组的下标来代替吗? 19.然后那你可以简单讲一下你对于DIFF算法的理解。 20.有了解过react fiber架构吗? 21.在react里面,如果说想要实现组件间的通信,通常会使用哪些方法呢? 22\. webpack 这一块,比如说loader和plugin,它们两个有什么区别呢?然后各自有什么样的使用场景呢?(从来没有了解过这个[惊讶]) 23.有没有了解过tree shaking呢?你可以简单讲一下你对于tree shaking的理解。 24.ES6的tree shaking,他为什么会依赖于ES6的模块而不是Common js呢?(因为我上一个问题有说根据import export移除未被引用的代码,早知道不这么说了我不知道为什么呀...我已急哭) 25.那网络这一块,比如说在项目中如果遇到了跨域问题,通常会考虑用哪些方法来解决呢。 26.HTTPS它为什么会比HTTP更安全呢?它是怎样保证这个安全性的呢? 27.手撕 Promise.all(写出来了) 实现一个深比对方法,传入两个参数,返回一个布尔值比较这两个参数是否完全相等(没写出来) 28.平常会使用ai提效吗 总结:八股涉及范围很广,但还是以常见八股为主。BFC,js如何判断元素在可视区域,webpack的loader和plugin这三个没答上来。弹性布局上中下三栏布局答得不好(这个很不应该啊)。全程没问项目,一直在问八股。最后的手撕prmoise.all两分钟就写出来了,第二个当时想复杂了,有些深层的引用类型参数不知道怎么处理,结果一行代码都没敲出来卡完了,应该先把那些好写的类型分分类先写出来的,后面想不出来的再说,咋能一行代码不写呢,能写多少是多少啊[叹息] 说是第二天出结果,面完一周还没反馈,默认挂了 蔚蓝云创前端实习面经 1.自我介绍 2.你是在哪里使用claude code的 3.一般在什么情况下使用 4.了解websocket吗 5.基于 element plus的虚拟表格你是不是知道一点? 6.你那个项目里面 element plus 你用到了哪些组件呢? 7.所以element plus的table模块你不是了解很多,对吧? 8.你用Vue2做过东西吗?那Vue2跟Vue3最大的区别你应该知道,对吧? 9.你这边对小程序了解吗?所以像对于微信小程序开发工具跟Uniapp是基本上没接触过,对吧?(是的一点都没有[尴尬]) 10.我想问一下你git了解多少?就是说实操。就是我们不说理论,我们只说实操,就是说你目前已经做过哪些操作?(嘻嘻我没有实操过我只能和你说理论啦,我自己做demo哪来那么多git应用场景[牛泪]) 11.git checkout 什么意思啊? 12.那目前说如果说我有一个项目,目前我们要拿这个项目就是改成另外一个,例如说就是分离式的,本来是一个整体化的,后面把这个项目改成一个分离式的,但是这个整体化跟分离式,但是这个整体式的项目还要接着往后写。你认为这一个分离式的项目是在Git上是重新搭一个比较好还是用分支比较好? 13.操作系统你了解多少?Windows跟Linux的一些基本命令行操作,你会吗?Linux你了解吗?(知识盲区) 14.就是我会给你个文档,然后给你一个用Python写的脚本,然后Python脚本里面有,就是文档里面有一个鉴权,还有一个地址,然后Python的脚本里面是把一整套流程给你写好了,就是说鉴权,然后成功之后你往里发数据,它给你返回来数据,然后我现在就是想要在一下午或者两个小时之内让你。用typescript重新把这个脚本给我写了,你的想法,或者说你的步骤是什么样?(何意味...) 15.typescript的TS或者 Javascript 的JS 就是要最快的运行出结果的命令是啥?或者说用的工具是啥?(回答的node.js) 16.那Node的版本就是Node有一个小插件是用来进行版本控制的,你知道吗? 17.反问 总结:面试体验有点差,这个面试官一直用怀疑的语气提问,有点呛人的感觉。也是一点项目没问,纯前端八股问的也不多,感觉偏实操的东西问的多一点,问到的有很多不会的地方,估计挂了。(我chovy你们提问给我提问好点的问题啊[好无辜]) 深势科技前端实习面经 1.自我介绍 2.对两个项目简单介绍,自己在项目里做了什么 3.介绍项目里从知识库检索内容怎么做的 4.多角色权限怎么设计的 5.那也就是说其实权限主要是在前端这边控制,就比如说我现在是一个做爬虫的,然后我知道你有这个页面,然后我用一个普通用户的身份去调管理员的接口,这个后端有做相应的防这个爬虫或者越权的这种处理吗 6.你这边react Router用的是那个它比较新的那个 data Router,是吧?你有用它的那个loader action和validate这套逻辑吗? 7.比如说我用一个患者的身份进入直接输URL,然后进入到医生的页面,那你是怎么给他做判断和跳转? 8.有没有遇到过Tailwind的那个它的preflight就相当于把所有默认样式清空的,这个操作会污染其他一些组件的默认样式,这个情况有遇到过吗? 9.有了解过Tailwind CSS的设计理念吗 10.你项目里有Echarts的设计,那SSE推送数据过来后前端怎么知道是文本还是图片 11.能具体讲一下字段怎么设计的,js这边怎么处理的吗 12.SSE前端是用什么请求的 13.那这边那个直接操作原始的这个readablestream的话,它那个Textdecoder这一块有遇到什么问题吗? 14.然后这个vue项目好像看起来和那个医疗问答就抛开框架的话,整个实践上来说好像也两套差不多都是做SSE,然后做渲染,然后那个 readablestream 这个也差不多,然后这两个有什么差异性的地方吗(想想确实是这样的这两个项目有点重合了) 15.从localstorage迁移到indexdb,就是这个数据持久化,你是出于什么情况下考虑的 16.给一个需求,就是大家现在用在市面上的一些AI聊天产品,你看不是不会说简单的只有纯文本。 然后有一些可能会有一些就引用来源,就比如说一个链接,你问他,然后他不是会给你他的来源,然后就当是一个网页链接,然后现在如果说我们需要在里面不是像GPT一样在尾巴上列出来,而是在文案中注入,然后这个链接你有,如果让你来实现的话,你会怎么去设计这个?(面试官说可以用markdown自定义标签来实现) 17.反问 总结:全程0八股一直在拷打项目,面试官问项目问的比较细致,也通过这次拷打发现了对项目还有不熟悉的地方,能查漏补缺就是有效面试捏[赞]至于没过嘛...没过就没过吧[牛泪] 滴滴前端实习一面 1.自我介绍 2.项目里客户端要向服务端请求一些数据,这个是基于什么协议去做的? 3.有调研过还有些什么别的网络协议吗?如果你调研过的话,为什么你觉得HTTP协议是适合用在你的项目里面的? 4.在你的这个项目里边刚刚有提到用了一个 Readablestream,当时是为什么要用这个呢? 5.你有用到HTTP里面的缓存的机制吗? 6.在你的系统里面有用到什么数据结构或者算法吗? 7.你觉得你的项目智能在什么地方呢? 8.交互的过程中间那些需要补全信息的时候的表单是通过什么样的形式生成渲染的? 9.场景题,关于文件上传智能纠错优化用户体验的,我觉得主要是考察怎么从业务视角出发去理解需求,尤其是当提出需求的人不是很懂技术的时候你怎么追问去得到你需要的其他信息,不一定要懂这些技术具体是怎么实现的 总结:整场面试体验很好,面试官很和蔼,基本以项目和场景设计为主没怎么问八股,还聊了聊兴趣爱好学校什么的 面试完当天通过约二面 滴滴前端实习二面 1.自我介绍 2.在浏览器的地址栏里输了一串URL之后,到我们看到这个页面,这个中间过程中发生了哪些事情呢? 3.如果我们要去做性能优化,可在哪些地方去做性能优化呢? 4.JS当中的原型链是什么 5.设计原型链这个概念有什么用处吗?为什么要设计这套东西? 6.JS当中我们怎么去一实现继承的一个能力呢 7.你讲一讲Vue和React区别 8.除了就是说表现形式上、内核原理上有什么不一样的地方吗? 9.我们在React当中有哪些性能优化的手段? 10.vue当中有一个keep alive,你知道是干什么用的吗? 11.那如果我们在react当中实现同样的功能,大概需要怎么实现? 12.在写项目当中有遇到什么问题吗? 13.这个AI相关的你有去学习了哪些东西?(这里还和项目结合介绍了一下,感觉兄弟们如果这种基础知识有在项目中体现的话可以和项目结合着说比较有说服力) 14.有自己去实现一些什么 skill 吗? 15.你在这个学习过程中遇到最到目前为止遇到最难的一个问题是什么问题啊? 16.手撕:实现一个函数,接收一个乱序数组和一个目标值为参数,输出数组中和为目标值的数组组合,数组长度不定 17.反问 面试完第二天oc[喝可乐]
本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
  10. 10
    useEffect的话,如果现在的数组里面是空的,这是第一种情况,第二种情况是如果传的是个对象,第三种情况是如果传的是个函数,它这个执行顺序,它这个执行的逻辑是什么样的
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
    追问
    调用之后throttle(A,300) throttle(B,300)只会输出A,多做了一个应用层
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
    具体推理思考的逻辑怎么在前端展示的,流式返回过程中怎么区分思考过程和最终回答的
  29. 29
    我随着输入的逐渐增加,然后它的大模型回复质量是会越来越低的,有没有这样的情况发生
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
    当我们把Flex设置为一的时候,它对应三个属性的值是什么呢
  36. 36
    用弹性布局来实现一个这样的三栏布局,就是分为上、中、下三部分,然后上部和底部是固定的高度,然后中间的部分去让它自适应可以怎么做呢
  37. 37
    如果说中间区域的内容过长,我不想它往下依次滚动,然后把底部挤出去,而想让它在自己中间的区域实现一个滚动应该怎么做
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
    react这一块,比如说你常用到的hooks是哪些呢?你可以简单讲一些,比如说它的使用场景,然后以及区别
  49. 49
  50. 50
    为什么需要给每一个子元素一个唯一的key值呢?这个key值可以用数组的下标来代替吗
  51. 51
  52. 52
  53. 53
    在react里面,如果说想要实现组件间的通信,通常会使用哪些方法呢
  54. 54
    loader和plugin,它们两个有什么区别呢?然后各自有什么样的使用场景呢
  55. 55
    有没有了解过tree shaking呢?你可以简单讲一下你对于tree shaking的理解
  56. 56
    tree shaking,他为什么会依赖于ES6的模块而不是Common js呢
  57. 57
  58. 58
    HTTPS它为什么会比HTTP更安全呢?它是怎样保证这个安全性的呢
  59. 59
  60. 60
    实现一个深比对方法,传入两个参数,返回一个布尔值比较这两个参数是否完全相等
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
    你这边对小程序了解吗?所以像对于微信小程序开发工具跟Uniapp是基本上没接触过,对吧
  70. 70
    你git了解多少?就是说实操。就是我们不说理论,我们只说实操,就是说你目前已经做过哪些操作
  71. 71
  72. 72
  73. 73
  74. 74
    就是我会给你个文档,然后给你一个用Python写的脚本,然后Python脚本里面有,就是文档里面有一个鉴权,还有一个地址,然后Python的脚本里面是把一整套流程给你写好了,就是说鉴权,然后成功之后你往里发数据,它给你返回来数据,然后我现在就是想要在一下午或者两个小时之内让你。用typescript重新把这个脚本给我写了,你的想法,或者说你的步骤是什么样
  75. 75
    typescript的TS或者 Javascript 的JS 就是要最快的运行出结果的命令是啥?或者说用的工具是啥
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
    用一个普通用户的身份去调管理员的接口,这个后端有做相应的防这个爬虫或者越权的这种处理吗
  81. 81
  82. 82
    用一个患者的身份进入直接输URL,然后进入到医生的页面,那你是怎么给他做判断和跳转
  83. 83
    Tailwind的那个它的preflight就相当于把所有默认样式清空的,这个操作会污染其他一些组件的默认样式,这个情况有遇到过吗
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
    然后这个vue项目好像看起来和那个医疗问答就抛开框架的话,整个实践上来说好像也两套差不多都是做SSE,然后做渲染,然后那个 readablestream 这个也差不多,然后这两个有什么差异性的地方吗
  90. 90
  91. 91
    在文案中注入,然后这个链接你有,如果让你来实现的话,你会怎么去设计这个
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
    在浏览器的地址栏里输了一串URL之后,到我们看到这个页面,这个中间过程中发生了哪些事情呢
  100. 100
  101. 101
  102. 102
  103. 103
  104. 104
  105. 105
    除了就是说表现形式上、内核原理上有什么不一样的地方吗
  106. 106
  107. 107
  108. 108
  109. 109
  110. 110
  111. 111
  112. 112
  113. 113
    实现一个函数,接收一个乱序数组和一个目标值为参数,输出数组中和为目标值的数组组合,数组长度不定

同作者面经

相关公司