Appearance
参考不大,像kpi
1、用到了哪些前端技术,做了什么事?
我跟面试官说我结合项目说用了哪些技术栈:
- 低代码:monorepo 进行包管理,物理组件采用 vite 库模式进行打包,项目分为桌面端和移动端,使用 sass 封装了响应式协议
- 实习使用 uniapp,对云打包,ios 真机打包也会一点
- ast 解析采用 rollup 打包,开发采用 react
- 桌面端采用 electron、vue
- 后端 express、nest 也都会使用
2、问我框架中哪个更理解?
vue
3、说说 vue 原理的理解?
说了 vue3 重写了响应式系统,说了下 vue2 的缺点,对象代理是属性级别的,属性新增检测不到,需要递归遍历,嵌套深的话性能不好...
4、面试官问:还有吗?让我说说底层怎么设计的
宕机,就知道这点东西。说了自己对 vue 源码不太理解,还说了知道 diff 算法的更新。
5、又问我 diff 有哪些更新?
vue2 相对全量更新,vue3 拿列表举例,分为有 key 和无 key,有 key 有分 5 种。当时脑子不清醒了,以为还在问 vue3 的变化,把 treeshaking 和打包性能提升也说了 😭
6、虚拟 dom 的设计是如何的?
vue 借鉴 react 的思想,多次更新统一渲染,跨平台。
7、vue 响应式如何做的?
读取走 get,收集依赖,访问 set 去执行所以依赖的更新。
8、快说完被打断了,问我 vue3 使用 proxy 的区别?
一个是属性级别,一个是对象整体级别的。
9、又问我哪些监听不到?
对象新增、删除、数组长度。
10、问我低代码是什么项目?公司的还是自己的?
我说是自己的项目,然后又问我说说公司项目(感觉对实习的产出更感兴趣吧)。
11、问我在公司实习做了些什么?
- 第一个是老项目重构,只要是量大,其他是业务开发了
- 第二个是微信小程序过程繁琐,需要去 git 上去领"任务"
又问了自己的项目是实际使用的吗,感觉真的很在乎是否啊上线或者亮点吧。
12、挑自己项目说一下有学习和成长的地方?
工程化学习。
13、如果一个新项目拿到手上应该从哪些方面去思考?
- 先看项目如何启动,找 package.json 命令或者 readme
- 看路由,页面结构
- 从入口文件 main 分析
14、让我具体一点,比如说设计一个新的系统?前期应该考虑些什么?让我从低代码项目搭建方向说
- 项目 api、库调研方面,例如拖拽库调研
- 相对区域响应式协议要如何实现?tailwind 插件,但是支持度不够好,原生 api 兼容性不够 两者做取舍
- 团队开发代码规范方面
- 技术栈选型
15、还有其他方面的吗?
真的是出现最多的话了,就说了要具体业务具体分析。
16、那说说低代码哪些方面还需要提升?不够健全的?
说了上一次面试的动态表单,类似 ai 工作流方面,还有一些动态执行函数的内容。
17、整个项目安全方面应该考虑哪些?
- 输入避免 xss
- 权限的动态路由
- 后端接口参数和身份的校验
又问我还有吗?只能说暂时就这些,感觉很慌啊,没答到面试官点上。
18、让我聊聊安全方面还有其他的了解吗?
我说主要就了解 csrf 和 xss,把一面后下来了解的内容都说了。
经典问题:然后呢?还有什么?无奈说了一些 sql 注入,说了下如何注入的。
19、前端性能优化主要做哪些事情?
从网络和渲染两个方面:
网络:
- 精灵图
- 缓存
渲染:
- 分页
- 虚拟滚动(复盘想起来还有图片懒加载这些)
又问我补充,从构建方面:沟通打包后资源分析插件去具体分析,大的第三方包排除使用 cdn,第三方包放在一起,便于后续缓存,路由懒加载,首包减少体积。
20、让我说网络方面的优化?
从减少请求数量和减少请求大小,代码切割+缓存(老是容易答重复)。
21、缓存有哪些方式?
就说了强缓存、协商缓存、启发式缓存、策略缓存。
我以为他会说然后呢?让我继续,实际是双方沉默 10s 后进入总结。
22、面试官:在聊到刚刚的性能、安全和网络是开发中很关注的问题,网络问题会看是不是是网络慢了,去看是前端还是服务器这块,缓存也是在减少传输数量
23、目前项目中熟悉的语言是哪些?
js、ts
24、泛型是用来做什么的?
忘了概念,和 interface 搞忘了,不敢答,就说了 interface 一般写对象的类型,type 是一般数据类型,还有做类型参数的,还有 ts 的工具类型。
僵持了很久,然后说跳过这个问题,人麻了,一个简单的问题,感觉印象扣大分啊。
25、快结束了:问我实习能够实习多久?
2 个月朝上。
26、反问:问了二面通过的要求、标准?
分部门,每个部门考核程度不一样,一二面交叉来的,一面时间少,二面可能会长,主要是要更了解面试者。
27、反问:组内业务和技术栈?
腾讯云的云计算、react。
28、反问:技术面一般有几面?
2-3 面