思考复盘
面试心得
Meshy
- 由于是第一次面试前端,会有一些紧张,并且有一些基础并不牢固,很多事情都是想当然,以为看过就会,实际上一动手就废。这是一次我想提前终止的面试,因为我真的被他问的有些不知所措。
- 在最后的交流环节里,我向他请教:在您学习开发的过程中,您是如何将知识内化的?
- 他给我的答复是:他会尝试模拟这个过程,看看自己的逻辑是否能跑通,如果不行,学习一下他跑不通的逻辑,也就是无穷尽的探索欲。
- 这给了我很大启发,我动手其实也有,但是感觉更像是一个typer,instead of thinker,我虽然得到了结果,但是这些东西并没有内化到我自己的心里。所以在今天回家的高铁上,我总结了五个点。
- 当你遇到一个问题,尝试去可视化这个问题,比如用笔写下来或者用你的大脑想
- 尝试去模拟这个过程,看看目前的知识是否足以解决这个问题
- 写下你的想法并且去找到标准答案,尝试去想一下这个答案是否完美,如果不完美,我们自己可以进行优化吗?
- 回忆刚刚的整个过程,并且尝试将过程复述给其他人,或者自己。
- 不要直接抄答案,要自己从大脑里面检索出想法。
京东
- 一面很简单,出的算法题不难
- 二面问了很多框架问题,比如Webpack和Vite的区别,为什么快,感觉就像是后端的Spring有什么有点一样。
- Webpack和vite都是构建工具,Webpack是全量打包,如果修改了某一段js代码,则需要将bundle全部重新编译;Vite有HMR,在dev环境下只会修改单一的js文件,然后替换更改了的模块而已
- React的一些特性,其实就是把组件视为树,通过Props和State来管理UI的渲染与否
- 如何记住状态,则需要Memo和Callback
- 如何更新,diff算法,操控虚拟DOM。对比新生成的Element树和旧树,采用最小开销算法比对新旧树(原理:启发式算法,认为更新都只是改一小部分),等到确认了更改部分后,则需要commit到真实DOM上。
- 操作系统和计算机网络的问题,比如并行和并发,事件循环机制,Http长连接和短链接
- js的模块化,很像是组件的思想,每一个js文件维护自己的js状态,然后导出给主js import 使用
- session以什么样的方式存储?存在服务器上,可能是数据库、redis、内存,但是一般来说都是数据库,不然重启了session就没了
Momenta
- Momenta问的东西比较偏业务,找到Json里的递归的Json,比如将变量名改为驼峰命名,比如间隔打印三色灯,实现函数能够有并发限制的运行promise,八股倒是比较少。
Shopee
- 虾皮则也喜欢考八股,但是面试官居然不知道Spring Boot,我有点不知道咋和他聊下去。
网易
- 问八股比较多,上来就开始问css的基础,这一部分确实看的比较少了,然后给了两个手写题,面试的时候没有写出来,没关系,现在总结出来了,哈哈哈。对hook的使用印象更深刻了。
第四范式
- 真的是非常感谢这一个面试官,因为他是唯一一个我答错了之后会告诉我答案是什么以及思路是什么的人,虽然他提出了很多问题把我问到了,但是还是学习了很多很多,沉淀一下,最后这家公司给了offer,但是北京还是太远了,下一次吧。然后问了一点数组的方法,forEach啥的
禾赛
- 禾赛问了一个 == 和 === 的区别,我还沾沾自喜说是对引用的比较,哈哈但忘记了两个等号比的啥,被自己坑到了,或者说举的例子不好。然后是数组的去重,如果有字符串该咋办,如果里面有负数该咋办,我真的只想到了O(n)的复杂度,然后真的是脑卡了,忘记了哈希表,因为我把set给排除掉了,下意识把map也排除掉了。
九坤
- 这家公司是目前来说最感谢的,两位面试官都是字节的,而且面试的方式也很独特,一位让现场使用agent构建项目,另一位也是让从0开始构建项目。
- 第一位演示了正在做的项目,第二位让现场写一个倒计时,然后就写出的代码进行提问,确实让我对React的理解加深了,React是State和Props驱动的,也对StrictModel有初步认识,还有useEffect()
迅雷
- 这位面试官很有意思,他问的问题基本都是业内会遇到的,而非纯八股,我觉得非常好,也给了我一些实用的建议。
百度
- 这位面试官问的问题是:响应式布局,重排和重绘比较偏渲染的问题,后续问了一下业务,是做文心一言,由此看来问题和业务会有一些相关性。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Explainfuture's Blog!
