关于前端经验1年的思考&&最近的前端面试

时间:2025-04-07 07:31:46

前端面试总结

离职之后,把自己放空了很久,最近也就是9.15开始找工作了,这个帖子记录下自己的面试经过,大家有类似经历的,希望评论区留言,人多的话,以后可以建立个群互相激励下。
巴拉巴拉~

和大家聊聊自己的想法吧,9月21号拿了外包offer,我是不想去的,但是就一年经验(我去年校招的)以及空窗期,这个面试市场确实是不给我面试机会的,之前我觉得我对前端技术掌握得其实还行,react vue webpack ts js …源码也看过,也调试过,也简单手写过一些概念,自己大概是一瓶不摇半瓶摇的程度——就“还行”,找个工作应该不难,毕竟我之前校招还是拿了一些中厂的offer的,后来面试后我扪心自问自己确实不够亮眼,基础也不够好,脱离了应届生的身份找不到工作属于是活该,裸辞更是造孽…

各种招聘app上都要求三年经验了,我本人双非一本学历不突出,年限就一年,更是遭遇互联网的下山坡,我没有意识到这个冬天有多冷,有多长,只会个pc端的开发,不行的,这块市场已经是饱和的。没有增长的需求和项目,也就没有招聘的需求,上岸的人就不要下海了,保护自己的坑位,但是前端是有市场的,那就是所谓的mirco frontend ,把小程序 reactNative electron uniapp等前端能扩展出去的东西学好使用好,(其实很多人是学了这些的,只能说我太懒了,有时间都没去搞)把自己的知识储备尽可能的增加,找一份体面的工作肯定是不难的,这次裸辞也给我一个警示,自己的程序员涵养不够,没有里子哈哈~~

总而言之,一步错步步错,后面两年就不要想着待遇的问题了,在外包里面待两年,业余时间把自己的技术搞得扎实点,(这次要反复提醒自己)加点年限,之后再去尝试吧,以现在的资质是没资格挑offer的…

9月16日 某银行外包 hr电话面试+外包公司的技术面(√)

1 生命周期

react的阶段有render() commit阶段,commit又分为before mutation mutition layout阶段

结合我们组件的创建时 更新中和销毁后回答

2 setState 同步还是异步

需要看下调用的环境如果是react自己调用那么就是先收集合并我们的状态更新,然后再更新dom,这个时候属于异步

如果是js的环境下,比如定时器和ajax等原生事件的时候就是同步的。

3 对函数式编程的理解

源数据不可以变,没有状态。

4 为什么不能在条件语句中写 hook

hook 在每次渲染时的查找是根据一个“全局”的下标对链表进行查找的,如果放在条件语句中使用,有一定几率会造成拿到的状态出现错乱

5 HOC 和 hook 的区别

hoc 能复用逻辑和视图,hook 只能复用逻辑

6 useEffect 依赖为空数组与 componentDidMount 区别

render 执行之后,componentDidMount 会执行,如果在这个生命周期中再一次 setState ,会导致再次 render ,返回了新的值,浏览器只会渲染第二次 render 返回的值,这样可以避免闪屏。

但是 useEffect 是在真实的 DOM 渲染之后才会去执行,这会造成两次 render ,有可能会闪屏。

实际上 useLayoutEffect 会更接近 componentDidMount 的表现,它们都同步执行且会阻碍真实的 DOM 渲染的。

9月19日 某银行外包 综合面(√)

没问啥,问了antdesign的组件…(问了一些属性),然后问了点防抖问了点项目结束,就10分钟

9月20日 字节外包 技术面(x)

问了些react方面的八股文,(当时我还以为他会问点fiber树之类的源码问题,希望他会问些begin work或者diff算法的,毕竟我花了两个星期看这个源码,还是希望他问下的)然后加上点网络请求的知识和cookie的属性等等,当时没联想好,对方应该是想问csrf和xss等网络安全的问题,我没答到点子上,我说到协商缓存那块去了,等到他问我cookie的属性的时候才反应过来,(我也不知道多少就知道个path 和domian),面试官应该想听到点更深的东西吧,

后面有一道算法,类似切割字符串,(正则写得好就秒杀了,可惜我不知道规则,每次都是去百度的,哈哈)写得有点慢,主要是看你是怎么思考的,会记录,最后没过应该就是这个写的太慢了,我leet code确实没刷过,就会个快速排序和冒泡排序,数据结构和算法大学都是混的,这个建议大家还是要练习下?!先从链表 递归之类的练起?反正要搞下的…