面经.前端实习生#
一面. 前端技术面试注意细节
- 介绍一下项目的技术栈和业务上的技术背景
- 只需要介绍你负责的部分, 辨别实际的工作量
- 详细介绍下组件抽离的时候怎么思考的, 怎么把几千行代码抽离成一些卡片, 体现结构化思想. 也就是技术思考技术.
- 有没有抽取 ECharts 相关的可视化组件? 主要是有什么抽什么, 而不是按照 ECharts 的.
- 做卡片抽取的时候考虑到哪些性能因素? 做抽取的步骤考虑了哪些方面? 主要是主文件 index import 需要考虑性能因素, 懒加载或者是路由守卫. 考虑到异常处理等方面, 是广义的性能.
- 实验室前端是什么配置? mentor 实习生配置怎么样.
- 实习生 +1 会做 代码 review 吗? 可能业务场景不一样.
- 组件有做 loading 处理吗? 请求接口阶段有做前端交互处理吗? 页面首屏进来后请求数据的过程有交互过程吗?
- ref 比 reactive 更好, 具体两个的区别?
- JS 有哪些数据类型
- 地图的框架用的是那个框架?
- 地图点亮上万级别, 如何性能优化避免首屏加载卡顿问题? 之前有接触过相关业务吗?
- 有对智能对话过程了解吗?
- 后端怎么维持长连接, 假设智能对话助手应该支持多种消息格式, 前端怎么接受不同类型的数据并且渲染展示? 可以提前标记好 instance off 数据格式? base64 格式 URL 需要服务器部署, 或者是怎么判断.
- ECharts 定制化开发?
- 场景设计: Ant 主体以某一个风格的主体, 希望来改一下 Ant 主题的配色和边框, 这个情况下应该怎么修改呢? 怎么改第三方库的样式呢? 也就是怎么做样式穿透? 感觉是很常见的业务场景. 如果用 AI 来修改, 怎么组织提示词使得代码更加健壮.
- 实习生接手他人代码的工作量是怎么处理的呢? 思路和过程是什么? 具体就是做了什么优化处理, 也就是怎么行动, 数据反馈, STAR 法则.
- 深层选择器是哪种语法吗? 冒号 important 是什么(选择器最高优先级) 原子化抽离.
- 前端日常开发哪些操作可以避免全局样式污染, 比如语法不规范.
第二场
- typersearch 组件组件化, 前后端分离框架.
- 从登录到 AI 发起对话, 查看历史对话, 这个用户流程, 前端会做哪些处理? ( 设置请求头从而获得流式响应, 预插入消息骨架, 请求动画帧实现性能优化)
- 用户未登录访问首页, 前端怎么拦截重定向返回? 响应拦截器怎么处理.
- 支持几种消息格式呢?
- 封装了什么组件, 拓展了那些功能点? ( 主要是新增和边缘, 编辑器以及页面预览? 有没有实用性或者是适用性比较高的组件? ( Button 用插槽实现功能区别)
- ElementPlus 给每一个组件很多拓展字段和响应事件, 暴露的方法. 不需要我们修改本身的样式, 那么比如刚刚提到的 Button 还有哪些响应事件呢? 前端通过响应事件感知?
- Vue 组件之间的通信怎么实现的, vue3 组合式 api
- 如何用 AI 组件化处理, 也就是判断可复用代码的标准? 比如说: 功能性和展示性组件的区别, 需求什么参数, 和子组件的复合.
- pnpm 的优势和不同, 什么叫做幽灵依赖.
- 想要修改 element 样式应该怎么修改?
- : important 这个语法呢? css 权重有哪些?
- 现在是模块开发, 缺陷修复或者是功能开发的时候效率会比较低. 主要还是 ai 辅助开发.
二面.
第一场
- websocket 上传的时候怎么控制频率, VAG 检测和预处理, 消息的格式怎么设计, 怎么维持链接防止网络波动. 解析消息的过程如何呢?
- AI 编排用来干什么, 消息的流式处理. Anno 框架, STT, prompt 拼接, 大语言模型生成返回对话. 七节点 DAG 是什么. 有一个编排页面吗? 还是写死在代码里面, 流程里面提示词怎么拼接, 前端写死的还是后端写死的.
- websocket 怎么保持活跃状态. 前端往后端请求有 ping, 服务器配置怎么样? 后端怎么向前端解析, 由于后端处理超时失败, 前端怎么处理. 设计上是怎么判断后端是主动断开还是超时了呢, 根据是什么? 如果是断开了会主动请求重新链接. 还有一些前置配置呢
- 指数退避的基础上添加随机数避免拥堵. 整个过程里面觉得最难得是什么? 边缘预处理. 借助 AI 做的还是自己做的呢? 包括还是要提现自己的设计能力. 检测模块和像素.
- 在哪里有一些设计想法呢, 有没有对你这个项目做复盘呢?
- 了解哪些 vibe coding 的工具吗? blackslash 的命令使用过哪些. 你用 skills 命令用来干什么的, 有什么应用场景. 举几个例子你沉淀了哪些 skills. 易滔认为国内的 skills 应该翻译成方法, CLAUDE.md 是用来干什么的.
- 你怎么和 AI 工具协同进化呢? 你和 AI 的分工应该是什么样的, 什么事情会让 AI 做. 细节在感受体验上应该是不一样的, 除了监管审查以外呢? 但是人力审查的过来吗?
二面教育部分
审查代码的时候肯定是越具体越好. 从那些方面审查, 一定要写测试. 用软件开发的流程或者是视角说明如何审查代码或者是与 AI 协作分工. vibe coding 输出的是什么东西. 以前的方式是做需求分析, 然后按照模块或者是功能划分, 功能设计(功能流程是什么)接口设计, 数据库设计, 类设计, 消息协议. 页面设计, 组件设计, 我们的任务是包含了哪些维度. 有没有权限管理系统, 配置, 后端管理. 视频和语音的时候有没有前缀. 审查的工具应该具备什么能力, 输出的东西应该被什么工具接纳? 自动化测试框架.