八百年不面试,一面试就面得一塌糊涂

前言

好久没面试了,最近看一些厂开始招人了,于是投了投,没想着过,主要是抱着学习的态度,看看自己哪里不足,没想到自己这么不足。。。

最近面了个试,某大厂,具体是哪个厂大家可以自行猜测,我看看有没有对的,哈哈哈哈

目前是三面,但是估计止步于三面了,然后我稍微整理了一下面试题,但是这里只说出我的思考,而不说出答案,至于为啥不写答案,我只能说,我自己不会。。。有些内容我需要进行学习,然后系统地、简单易懂地分享给大家

我说一下我自身的情况:主要技术栈是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页,但是没啥用,他们都没问

我也发现自己计网、操作系统这里太薄弱了,有时间还是得系统学习一下的,自己的确在开发中没遇到过这些,欠加思考

希望大家也能重视一下这里吧

最后

还没有使用过我们刷题网站(https://fe.ecool.fun/)或者刷题小程序的同学,如果最近最近准备或者正在找工作,千万不要错过,我们的题库主打无广告和更新快哦~。

老规矩,也给我们团队的辅导服务打个广告。


原文链接:https://juejin.cn/post/7273682292538933306