疯狂游戏-前端一面

表面是前端,其实过去是要做 Flutter 开发

拷打项目挺多二点,真的拷打,可能是因为我表达能力太差了,面试官没法听明白我在讲什么

1. 你觉得复杂的页面是什么样的(回答得不太好),结合你的项目分析

有很多类似样式的组件,但是会有细小的样式之类的差别,这时候可能会单独判断一个条件,然后条件多了代码可能混乱了。有一些登录相关的页面,每次请求可能要带上 token(面试官说这个不复杂,我说对,像 axios 这类有拦截请求很好实现),我想说的是一些登录那种,比如无感刷新之类的,然后面试官问为啥么要设置短 token 和 refresh token,自己巴拉巴拉,说自己的项目其实不需要无感刷新,无感刷新可能更适合单点登录,然后又解释了为什么要设置短 token 和 refresh token。还有一些状态管理很复杂的。。。

2. 你觉得你这些项目里哪个最难

我说第二个最难(一个展示前端依赖关系的,具体见 https://github.com/truthRestorer/truth-cli),因为涉及了数据结构和算法,自己系统学了一遍

3. 那最难的项目里面有什么优化

我说生成的数据需要用树图展示,我单独有一个 map 存储了依赖之间的关系,这样查找就从 O(n)又滑到了 O(1),然后嘴漏说了 echarts 树图一些小 bug,但是说了很长时间,感觉说的不太好,虽然面试官最后明白了

4. 你用过哪些 react 全局状态库,它们怎么实现的

用过 redux-toolkit,zustand

早期是用的 useReducer 实现的,现在基本都是用 useSyncExternalStore 实现的,然后说这个 hooks 怎么用,然后我自己也实现了一个

5. 接触过 canvas 嘛

接触过,但是仅限于 api

6. 接触过 webgl 嘛

没有。。。

7. 接触过 webassembly 嘛

我靠,最近刚做过这个,跟面试官说最近想用 wasm 在浏览器端编译 C 代码,因为实验室考核需要 oj 平台,然后他问我做的怎么样了,我说遇见一些瓶颈,因为浏览器没法调用 gcc 命令,所以自己还要找一下 gcc 编译出来的 wasm

8. 自己怎么做网页优化的,有啥指标吗

指标忘记了,就说了一个 lsp,然后把自己能想到的优化措施都说了一遍,cdn、将多个文件分成多个 chunk,然后面试官问:js 怎么优化,我当时脑袋一片空白,没想出来,不过过了一会想出来了 defer 和 async,赶紧插嘴说了出来,后来说检测可以用 performance api

9. React Fiber 怎么做到时间分片的

只记得源码有个 while 循环,但是忘记了具体逻辑...

10. 你用的最多的是 js,有没有接触过其他东西

我更正用的最多的是 ts,然后其次就是 js 的一些框架,然后我感觉问的应该不是这个,就说了自己曾经学习过 golang 和 rust,但是只做了官网的一些基本教程,rust 倒是重构过一个项目

11. 了解过 flutter 嘛

我刚想说来着,面试官主动问了,我说学过,但是技术层面知识可能不太记得了,flutter 给我最大的感觉就是嵌套很多,有很多花括号,他问我跟 vue 和 react 的写法有啥区别,我说 flutter 声明式的,ui 结构是根据 class 对象嵌套得来的,而 vue 和 react 的页面结构是 xml 结构

12. 你觉得你有什么优势,但是没有表现出来的

我说自己对 nodejs 比较熟悉,然后问我对哪方面熟悉,讲道理说到这我懵了一会,然后说自己对 api 使用比较熟悉,还熟悉 commonjs 规范实现原理,然后他就问我怎么实现的

13. 反问

前端选手过去做 flutter,会不会因为安卓底层系统不明白,导致上手困难?

20% 涉及到了安卓,其实就是熟悉的过程。。。

------------------------------------------------------------

感觉挺难的,基本不问八股,可能是小公司更喜欢和自己业务方向符合的选手

自己也没回答太好,说话吞吞吐吐,这很为难我一个八股选手

更新:已挂
全部评论
八股战士看到情景题汗流浃背了
2 回复 分享
发布于 08-12 15:38 上海
佬,在哪投的,给个链接flutter选手
点赞 回复 分享
发布于 08-12 16:16 山东
蛙趣,跟我上周面的差不多,压力慢慢,一直被捶打😭😭😭
点赞 回复 分享
发布于 08-12 21:17 广东
好难 不如问八股
点赞 回复 分享
发布于 08-14 10:57 山东
考虑拼多多吗
点赞 回复 分享
发布于 08-14 16:41 上海
绷不住了,今天刚面了,问的问题都一模一样
点赞 回复 分享
发布于 09-13 18:57 上海

相关推荐

#include#include#define N 30int a[N][N],dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};int s[N][N];int main(){    int n;    scanf("%d",&n);    int x=0,y=0,X=0,Y=0;    int k=0;    for(int i=1;i    {    s[x][y]=1;        a[x][y]=i;          X=x+dx[k];Y=y+dy[k]; if(X>=0&&X=0&&Y         else         {             if(k!=3)             {                 k++;                 x+=dx[k];                 y+=dy[k];             }             else            {                k=0;                x+=dx[k];                y+=dy[k];             }         }    }    for(int i=0;i    {        for(int j=0;j            printf("%d ",a[i][j]);        printf("\n");    }    return 0;}
点赞 评论 收藏
分享
评论
8
15
分享
牛客网
牛客企业服务