45min
强度很大,面试官全程围绕简历和项目深挖,差点就没顶住
不过面试官人很好,我卡壳的地方会引导,我不会的或者说的不对的也会给出正确的解答
- 自我介绍
- 挑一个你比较熟悉的项目讲讲(硬着头皮选了组件库,噩梦开始)
- 组件库如何打包的配置脚手架(command-line-usage插件处理用户参数balabala之类的)
- 脚手架中拉取远程模板怎么做的,还有别的方法吗?
- 有做对脚手架复杂逻辑的处理吗?(项目名重复造成冲突如何解决,用户是否能指定项目路径,项目路径是绝对路径和相对路径时要怎么处理?) 给出了一点自己的解决思路但可能不是很对,面试官给了一些解答,并建议我可以去看看vite在这方面是怎么处理的
- 自动打包与发布是如何实现的?(gulp+release-it,过程中还扯了一些按需加载)面试官让我具体讲讲实现(口喷了一下)
- 什么是热更新(HMR:Hot Module Replacement),以及为什么vite热更新那么快(对修改的代码块进行替换,而不是对整个代码进行替换)
- 你有提到ESM,那你可以讲讲ESM和commonjs吗(粗略讲了ESM按需加载以及import和export语法,commonjs更多用于nodejs,直接寄)
- 讲讲你了解的git提交规范(就记得一个feat是增加新特性和fix是修复bug)
- 组件库采用了Monorepo架构,为什么选用Monorepo,顺便讲讲Multirepo以及这两种架构的优缺点
- 如何实现的Monorepo?具体讲讲(pnpm,面试官不满意我又答了硬链接和软链接)
- 讲讲pnpm解决了npm什么痛点(幽灵依赖,依赖嵌套)
- 什么是幽灵依赖?(支支吾吾半天答了个应该是没有用到的依赖,面试官说差不多)
- pnpm中 -w是什么(安装依赖在根目录)
- 知不知道Omit和Pick(不知道,没听过,复盘的时候了解到是Typescript中的内置工具类)
- —fliter是什么(答了一堆乱七八糟不着调的但是还是结合项目中的使用给出了回答,面试官三言两语就精简概括了出来)
- 你提到了硬链接和软链接,讲一讲(我这破嘴,直接说不会)
- 电商项目中的轮询是怎么做的?讲讲长轮询和短轮询以及webSocket(短轮询不会,webSocket粗浅答了一点) 至此项目结束开始八股
- 同源策略
- 跨域解决方案
- Https在Http基础上新增了什么?(答了个ssl/tsl安全协议)
- Https传输过程中加密方式是对称加密还是非对称加密?(答了非对称,但是错了)
- URL从输入到页面完成渲染的过程(大概回答上来了,但是漏了个强缓存和协商缓存啊啊啊这题我会但我当时没说,面试官反问环节说不要全靠面试官引导,你会的知识点自己要展现出来)
- DNS域名解析具体过程,解析过程是迭代还是递归(答的迭代)
- 左侧固定右侧撑满的菜单布局(当时卡住了,最后给出左侧float和右侧弹性布局的方案,也不知道对不对)
- Vue组件间传值
- Vue Router前端路由实现原理(不会)
- Vue Router 两种模式(hash模式和history模式)
- Typescript有用过吗(有,但不多,面试官就没问了)
- js基础数据类型
- Set和Map数据类型了解吗?(不了解Map,只知道Set可以用于去重操作,内部数据结构是唯一的)
- 为什么需要bigInt
- 0.1+0.2!=0.3的原因,以及如何让它相等
- 二进制转换十进制为什么会造成精度丢失?
暂时就记得这么多,没录音的痛
反问
面试官对我的评价
前端主要技术栈(Vue3+ts,也有Vue2和react)
部门规模主营业务
对我今后学习方面的建议(计算机基础知识要扎实)
最后面试官确认了base意向,两天内出结果
#我的实习求职记录#