前言
好久没面试了,最近看一些厂开始招人了,于是投了投,没想着过,主要是抱着学习的态度,看看自己哪里不足,没想到自己这么不足。。。
最近面了个试,某大厂,具体是哪个厂大家可以自行猜测,我看看有没有对的,哈哈哈哈
目前是三面,但是估计止步于三面了,然后我稍微整理了一下面试题,但是这里只说出我的思考,而不说出答案,至于为啥不写答案,我只能说,我自己不会。。。有些内容我需要进行学习,然后系统地、简单易懂地分享给大家
我说一下我自身的情况:主要技术栈是vue
全家桶,算是能深挖的那种,其他的,react、webpack、vite、less、sass、tailwindcss、unocss、Nuxt、node
等系列都会,但是说实话我是没法手写出来的,只停留在会用的程度,webgl、canvas
等可视化方向还可以,毕竟我之前就是做这个的,算法还算可以,不说精通,但是一般题是可以做出来的,然后在基础方面,也就是js、css
这块,我只能说了解吧,因为见过css大神
,coco
这种的,就感觉自己css从熟悉变成了听说。
反正大概的就那样吧,会的比较多,比较杂,但是很多都不精通(不去看源码这种),关键的来了,我对于浏览器这块比较薄弱,计网、操作系统对我来说像噩梦一样,我觉得是我经验少吧,没能在工作中接触到这几个层面,所以我就是真的能答出来,也就是硬背的,并且不能举一反三,这也导致了这次面试的惨败
下面我说一下面试吧
注意,公司的技术栈主要是
React(umi)
这块,vue
很少很少,然后会用node
写一些中间件,大部分都是大前端
然后算法问题的话,也不在这里说,主要说一些口述的问题
一面
一面是对我来说最友好的一面了,基本上都是简单的一些基础问题
面试官主要是react
技术栈,然后我和他说了,我主要是vue
的,vue的原理可以,但是问我react的太深的问题我是不太会的,首先是自我介绍,然后开始问问题
- pinia和vuex的区别,其实他想问我Redux和Mobx和其他React状态管理的区别,但是奈何我就会这几个,所以他索性问了问了我pinia
- css实现DOM节点的水平居中有几种方式:我记得我说了四种,flex,text-align,margin,position,应该还有,但是一瞬间的话,脑袋瓦特了
- 实现一个左右布局,左侧200px,右侧自适应,css写有几种方式:我说了浮动、定位、弹性盒、网格这四种
- 检测js数据类型,typeof和instanceof区别,instanceof原理:这里我直接手写了instanceof,这个很简单
- 浏览器输入url,到看到页面会发生什么:我当时懵了,我看过n个面经都说过这个问题,经典八股,但是我就是没背,只能磕磕巴巴说了一些(我八股真的不行,而且我不背这玩意)
- 用Java的时候,对登录请求进行拦截,怎么处理的:这个很简单哈,为啥问Java,这是因为我简历上有,我之前从事过全栈,然后他就问了一下
- 函数式编程的副作用是什么
- 工作的经历,项目问题(这个占据了大部分的时间),其中有个问题可以分享一下,因为我用了
wangeditor
,他问我wangeditor的内核是什么
一面总体来说是很友好的,而且都答出来了,面试官很礼貌,面试感受非常好,第二天下午的时候通知二面
二面
噩梦的开始
- 自我介绍
- 公司项目问题(绝大部分时间)
- vue、react数据绑定的区别
- 我想存储一个客户端的数据,前端有哪些存储方式:后来就存储、内存的问题开始展开
- pinia会进行数据的存储,它最终存在了哪里
- js的内存是怎么进行管理的
- 垃圾回收、内存泄漏,什么情况会导致内存泄漏
- 闭包是什么,应用场景,怎么操作会产生内存泄漏
- 你在工作时用的哪种协议
- 除了http还有哪些通信协议(跟前端有关的)
- websocket通信过程是怎么样的
- 前端跨域相关问题
- 代理相关问题
- 服务和服务之间有没有跨域
- 前端安全方面有哪些攻击方式
- 该怎么处理呢
- node有哪些框架可以处理脚本攻击(或者是库)
有些问题记不清了,后面有一些网络的问题,但是忘了,前面其实还好,而且问题是一步一步衍生出来的,这感觉很好,但是到网络安全这里,我就有点不会了,当时就感觉完犊子了,再见
然后过了三天,hr电话告诉我过了,约了三面,其实是比较吃惊的,我以为已经止步了
三面
最难受的一面
- 自我介绍
- 说说最近自己认为最好的项目,然后我说了一些,然后对方:就这?我一时语塞,开始紧张(项目占据了大多数时间)
- 说说tcp三次挥手,为什么不能两次
- tcp粘包,讲讲
- 还有一些计网和操作系统的问题,这里是因为,我根本不会,所以压根没记住问题。。
- 进程、线程区别,举个生动的例子
- 讲讲多线程
- 浏览器的核心线程和核心进程有哪些
- MySQL的引擎
- 现在有一个100tb的文件,让你一分钟之内把这个文件遍历出来,怎么做
计网和操作系统一塌糊涂,现在面试还没有反馈,凉凉了,而且看面试官的态度也能看出来是很不满意的
总结
平均时长在45min左右
几乎没问vue
的任何问题,这是我最难受的,而且js、ts、css
也几乎不问的,反正就是我上面的技术栈几乎一个没问,面试官主要就问你两处:你的工作经验(也就是你曾经的公司项目),以及计网和操作系统
因为我有做一些开源的项目和个人的项目,但是他们更在乎你之前公司的项目是什么样的
我自己的项目比较多,简历就有5.6页,但是没啥用,他们都没问
我也发现自己计网、操作系统这里太薄弱了,有时间还是得系统学习一下的,自己的确在开发中没遇到过这些,欠加思考
希望大家也能重视一下这里吧