个人简介:211计算机大三,自学前端半年,两个小项目。第一次面试。
具体问题:
1.聊聊项目吧,你在正式写业务代码之前做了哪些工作?
答:参考了现有网站的布局,设计,和功能实现效果,去设计自己的网站。然后聊到了项目文件结构划分,依赖安装,craco设置路径重名。面试官追问了项目几个人写的,我的工作是哪块。
2.你在实际布局的时候有没有用ui库?
答:小组件用了antd,整个布局自己用flex写的,面试官追问了项目布局细节,但我是真的有点忘了呀,细节答得不是很好。
3.你说你用算法对项目做了算法优化,功能需求是啥,为什么想到用这个算法?
我就balabala了一堆,说我把后端的优化放到前端了,面试官笑了,说这算一个不是办法的办法。
4.你的项目遇到了什么困难么?
我就扯到了setstate带了的同步和异步的问题,自己怎么改bug怎么查bug的,为什么会有这样的问题。又然后扯到了redux进行状态管理。
5.为什么要用redux?
我就扯到了redux的三项原则。面试官追问,你觉得这三个原则里面有没有不合理的地方?我直接尬住,心想我就是用了一下呀,我咋知道哪里不合理。后面突然灵感来了,我就说redux并没有在这三个原则里面去体现对副作用的处理,而是额外采用了中间件,面试应该赞同了,没有追问。后面又谈到了状态更新时的性能问题,扯到了immutable.js,但被面试官推翻了,我赶紧赔笑道说这块没有深入了解,没有来得及看源码,面试官笑了说没事,(真没事么?)
6.后面继续问项目细节,扯到了http协议,谈到了无状态,cookie,session,token。面试官追问了token,我说我还没有用过,不太了解,并且赶紧说自己下个项目就是准备用的token。
7.事件循环。
我就从单线程,同步,异步,为什么要同步和异步,宏任务,微任务,为什么要有宏任务和微任务,整个执行流程讲了一遍。应该是讲清楚了,面试官没叫我看代码说输出。
8.做题,数组去重,数组元素为对象,根据对象属性来去重。
第一次写了个排序再去重,面试官说我写的有问题,就叫我输入输出,结果没问题,面试官笑了,说自己看错了。
第二次用了一个辅助数组来做,面试官提醒用对象来做更快。我说map更快,他问我原因,这我就不知道了,马上恶补。
最后惯例,我问了一下我的不足在哪里,因为第一次面试。面试官说都挺好,准备得挺充分。
我问具体业务是啥,是做游戏么?面试官说你想做游戏么,我说我想打游戏,他又笑了。最后叫我等hr通知。
也不知道有没有二面,唉,人生第一次面试,也算是对自己的一种审视吧。
许愿二面
全部评论
(6) 回帖