前端面试日记:小厂4

面试公司:杭州某小厂

面试岗位:前端

昨天面了个憨批小厂,上来说暑期,问技术栈说js,面试问问题吱吱呜呜,最后我问有转正吗,回答没hc……

感觉小公司就是没暑期,有也是对暑期理解有误差:“暑期,不就是暑假来日常实习吗?”

好的,寒气就是这样往下流的,92鸽大厂,大厂鸽双非,双非鸽小厂。

让我说,全部一把火点了吧。

今天面了前几天约好的二面,照例整理下,虽然没有我想要的手撕代码很难受,但是面试官人挺好的,重点夸赞。

今天主要拷打的是项目这块,主打一个项目内容我懂他不懂,我不懂他也不懂。

面试问题:

[项目相关]

1.问题:Electron里面如何优化主进程和渲染进程的通信效率?

答题思路:操作打包;预加载;ipc同步与异步抉择;数据序列化优化

反思:这边Electron相关的内容还在做简单demo,争取下周做完。

2.问题:虚拟列表的是如何动态地计算滚动区域和显示范围的?在uniapp中是否进行特殊的处理?

答题思路:计算——监听滚动事件,获取scrollTop;范围确定——计算列表项初始索引和结束索引;渲染更新等。

反思:没有实操过,确实很难说出具体操作,晚上写个demo试试。

3.问题:“骨架屏”只是放一个空白的“骨架”样式吗?有没有在此基础上做一些别的操作去增加用户体验?

答题思路:加载动画;渐进式填充;错误反馈等等。

反思:“骨架屏”更多停留在微信小程序自带生成的骨架屏,感觉在此方面可以适当拓展。

4.问题:在提升大规模提升数据渲染效率时,可以用webworker分担计算任务,有使用过吗?能介绍下吗?

答题思路:基本原理——允许js后台运行脚本,可以承担复杂的计算任务(数据排序、过滤、格式化等);使用步骤——安装worker-loader;vue.config.js配置;常见语法new,postMessage,onmessage,terminate

反思:没用过,但实际上可以了解下echarts等图标碰到大数据情况时的优化,回答到相关领域往上扯就行。

5.问题:git一些常用命令:fetch/pull区别?revert/reset/rebase区别?reset几个层级?

答题思路:pull为merge+fetch,会合并远程到本地;rebase变基,一般用来修改commit信息,所有之前的历史信息都会重新提交到顶部;reset恢复版本,三个层级,--soft回退到暂存区,--mixed回退到工作区,--hard删除当前版本;revert恢复版本,但是为新增提交,新增的提交指向回退的版本内容,更加的安全。

反思:git的不常用操作确实需要时间去单独记忆。

6.问题:react常见知识:类组件和函数组件的优缺点?高阶函数的优缺点?react如何自定义hook?

答题思路:类组件更加灵活,性能优化更加可控,心智负担轻;函数组件语法简洁,更易测试;高阶函数可以封装代码,避免重复编写,增强组件功能;自定义Hook略。

反思:真不应该在简历写熟悉react的,我错了我错了我错了我错了我错了我错了我错了我错了,暑期如果有时间学了再写吧TUT。

#软件开发笔面经##面试常问题系列##我的面试日记#
Loy前端面试日记 文章被收录于专栏

面试日记, 既为己,也为众; 既为过,也为来; 既为悔,也为成。

全部评论

相关推荐

05-18 07:43
已编辑
东华大学 前端工程师
一面(2025/02/13)1. 自我介绍2. 你如何学习前端的3. 为什么没有继续深入大数据相关行业4. 项目介绍    1. 项目功能    2. 如何处理学生考试时提交结果的高并发的问题    3. 为何选择 Pinia 而不是更加主流的 Vuex,出于什么考虑    4. 项目打包过程,产物是什么样的,浏览器能运行什么文件,能运行 ts 文件吗,为什么只有一个 index.html 却能显示不同页面,Vue 中的 template 代码是如何在浏览器中被看到的(这里一开始没有回答上来,所以在引导我)(单页应用 SPA)5. 工程化    1. Vite 打包过程    2. Webpack 与 Vite 的区别    3. Webpack 中的 loader 是做什么的    4. es6 转 es5 是怎么实现的,听说过 Babel 吗    5. npm、pnpm、yarn 的区别,lock 文件是做什么的6. Vue    1. 组合式 API 与选项式 API    2. Vue3 与 Vue2 的区别    3. 组件通信方式7. CSS    1. 有哪些布局,讲一讲 Flex 布局,常用属性    2. 定位方式    3. 选择器优先级,important 的优先级是多少8. JS    1. 实现异步的方式(回调、Promise、async/await)    2. Promise 的 API,Promise 的参数是什么    3. 事件循环,JS 引擎为什么是单线程    4. 浏览器缓存(强缓存、协商缓存)9. Git    1. 常用命令    2. rebase 与 merge 的区别10. Linux 常用命令11. 数据结构与算法    1. 数组和链表    2. 有哪些排序算法,冒泡排序与快速排序的时间复杂度    3. 图的表示方式    4. DFS 和 BFS,层序遍历属于哪个12. 反问:什么是大前端如何学习前端的回答没有让面试官满意;项目细节不太了解,没有去尝试理解更深层次的部分;对前端打包细节了解不多;基础知识仍然需要再完善提高。美团的面试官让我对面试有了新的认知,跟京东的面试体验差距好大。二面(2025/02/20)1. 面试官自我介绍,自我介绍2. 能实习多久,什么时候能来3. 你熟悉的技术栈4. 盒模型5. 居中方式6. 事件循环7. 防抖和节流8. HTTP 状态码9. OSI 七层模型10. UDP 和 TCP,TCP 为什么更可靠11. GET 和 POST,POST 为啥要两次请求12. JS 与 TS 的区别13. TS 类型14. v-model 原理15. computed 和 watch 的区别与使用场景16. nextTick 使用场景和实现17. 事件总线18. 项目相关    1. 介绍 OJ 重构项目、人员规模、开发周期、你负责的内容    2. 为什么要重构    3. 重构时如何保证系统功能稳定性    4. 为什么选择 Pinia 而不是 Vuex    5. 组件库的选择考量    6. 介绍大模型对话组件,背景、出发点、开发周期    7. 流式传输协议怎么实现的    8. 虚拟滚动技术怎么实现的,开始与结束的索引怎么计算的19. 算法:最长递增子序列隔了一周挂了,有些没答上来,有些说的不够广不够深,算法看错题了(ಥ_ಥ)
点赞 评论 收藏
分享
05-26 11:38
已编辑
陕西理工大学 Java
   1,日语介绍,你有考N2的打算吗?2,浮点型有哪些基本数据3,字符呢?4,vue的生命周期(不会,前端会用就行)5,前后端怎么交互(axios)6,网页加载时先会执行那个模块。(head)7,你要一个计算逻辑,你在哪个模块写。(s开头的模块,没记住发音)8,传数据前面一个关键字是什么?(我说一个aw开头的,不知道对不对,也没给我说)9,介绍一下你的项目10,你是怎么用docker部署的(我说前后端打包成jar包,弄成镜像,启动容器,说我少了关键的一步,想起来dockerflie,我说我直接拿网上现成的改了下就用了,说你改了什么,就改了一个开机自启动,方便自己调试,感觉好像有点不满意)11,说一个比较难的点吧12,那个QJ在线判题项目,策略模式,你是怎么写的,具体流程(说完后,这不是你写的吧😄,不知道怎么回)13,for循环有两个关键字(break, continue,一时半会没想起来是干什么的,在想for不就循环一下,写个判断条件和递增条件,然后你连这都不会,额额额,🐔)14,sql有三个字段(create,select,from?他说不是,额,光背什么索引,底层,事务,大key,慢查询了,没记这个)15,增删改查,那几个关键字。(这个还是可以的)16,反问,公司是做什么的(做的比较杂,然后沉默了一下,要会日语,额,感觉有点🐔了,就没问了)哎,准备的什么集合,JVM,redis,mysql,并发,网络,和一点消息队列,一个没问
点赞 评论 收藏
分享
评论
4
8
分享

创作者周榜

更多
牛客网
牛客企业服务