li-jia-nan / my-blog

个人技术博客,同步掘金,文章写在 Issues 里
43 stars 1 forks source link

记录下最近面试的情况 #5

Open li-jia-nan opened 1 year ago

li-jia-nan commented 1 year ago

先说结果:坐标杭州,3月中旬裸辞,休息了几天开始找,面了4家,过了2家,累了,后面的面试不想去了(因为没学历,只能面小公司)

2021 年 3 月 30 号:(挂了)

  1. ES6、ES7 - ES11
  2. Promise 的用法、和 async、await 的区别
  3. 虚拟 dom
  4. 深度优先遍历(递归版、非递归版)
  5. 冒泡、选择、归并、插入、快排(只答上来归并和选择)
  6. 算法题(实现一个全排列,思路是用回溯算法,没写出来)
  7. 和服务端交互的时候,如何保证数据的安全性?不被第三方修改(没答上来)
  8. 视频加密、图片加密(没答上来)
  9. md5 加密之后可以解密吗?(瞎回答了可以,实际上不可以解密,只能爆破)
  10. 小学生的逻辑推理题(很傻 X 的题,看图片找规律那种,可以忽略)

    2021 年 3 月 31 号:(已收到 offer)

  11. 上家公司的项目难点以及收获
  12. Function Component 相比 Class Component 有哪些优势?
  13. 常用的 hooks 有哪些?都用过哪些?
  14. 生命周期(随便说了几个,实际上一共 13 个,包括 3 个废弃的)
  15. 单向数据流的概念(自顶向下,一层一层传递)
  16. React.PureComponent 作用、React.mome 作用
  17. 如何控制 render 函数减少重复渲染?(shouldComponentUpdata 或者 useEffect)
  18. Taro 的跨端编译原理(没回答上来,盲猜:react 有四种不同的编译器,编译时不同平台走不同的编译器)
  19. 说一下 react、vue2.0、vue3.0 三种 diff 算法的区别(react 是递增、vue2.0 是双指针两端比较,vue3.0 不知道,没答上来)
  20. 了解过 vue3.0 吗?跟 2.0 对比有什么变化?(说了diff 算法优化,proxy,hooks)
  21. Webpack 如何进行性能优化
  22. Webpack 工作流程、打包原理
  23. TreeShaking 相关(回答的不是很正确)
  24. 如何对 antd 的 Table 组件进行二次封装
  25. 在 vue 中复用已经封装好的组件时,在不修改原组件的前提下,如何扩展功能?(不知道面试官期待的答案是什么,这里回答了插槽)
  26. React 中用过哪些状态管理工具?(Redux、React-redux、Dva)
  27. 除了上面两个还知道其它的吗?(知道 Mobx,但是没用过)
  28. 除了 webpack,还了解其它打包工具吗?听说过 vite 吗?
  29. Diff 算法是在哪个阶段中执行的(render 中的协调阶段)
  30. 平时是怎么学习的?最近在学什么?
  31. 其它一些项目问题……
  32. 还有一些问题想不起来了

    2021 年 4 月 1 号:(太难了,当场就挂了)

    一面:

  33. 宏任务、微任务(答的不好)
  34. ES6、ES7 - ES11 新特性(回答了很多很多,直接被面试官打断)
  35. 说一下实现继承的几种方法(只答上来 1 种原型链继承,除此之外,还有寄生继承、组合继承、寄生组合继承、Class extends 继承)
  36. babel 把 Class 转成 new Function 的原理是什么(寄生组合继承,没答上来)
  37. position 属性的几个值
  38. BFC 怎么触发?(需要回答概念、规则、触发条件,这里只回答上来浮动触发)
  39. 网络相关(计网基础很差,这一块直接放弃)

    二面:

  40. ECMA 标准从提案到发布有几个阶段?哪个阶段是具有里程碑意义的?(五个阶段,没答上来)
  41. 有封装过公共组件吗?把你的组件发布到 npm 上怎么操作?(没回答上来)
  42. rem 的劣势是什么?(手机修改默认字体会有影响,没回答上来)
  43. 工程化(回答的不是很好)
  44. 模块化的标准都有哪些?(只回答上 CJS 和 ESM,还有 AMD,CMD,UMD 没想起来)
  45. CJS 和 ESM 的区别(只回答出写法上的区别,原理的区别没回答上来,这一块内容回家之后补习了一下,后面写了一篇文章,专门对模块化规范做了分析 - 你真的了解CommonJS吗?
  46. 异步加载组件的 import 是什么语法?跟 commonjs 和 es module 一样吗?(没答上来)
  47. form 表单了解吗?一个 form 元素里面可以嵌套另一个 form 吗?(我说可以,猜错了)
  48. 有读过 W3C 规范的相关文章或者资料吗?(没有)
  49. Babel 的 plugin 和 presets 了解吗?常用的 presets 都用过哪些?(没答上来)
  50. 看到你简历上熟悉 react 部分原理,说一下渲染流程吧(然后给我一支笔,开始画图)
  51. current Fiber 树、workInProgress Firbre 树的区别(这里扯到 diff 算法的过程,diff 算法的本质就是通过对比 jsx 和 current Fiber 树,生成 workInProgress Firbre 树)
  52. 单节点和多节点的 diff 算法区别(这里说了一下 reconcileSingleElement 和 reconcileChildrenArray 两个函数)
  53. render 函数从递到归的过程(这一块回答的还行,说了从 beginWork 到 completWork 的执行顺序,但是画图的过程中出现了小失误,把深度优先遍历误写成广度优先了)
  54. Fiber 节点中的单链表,环链表(没答上来)
  55. diff 算法的执行发生在哪个阶段?(协调阶段)
  56. diff 算法的三个限制是什么?(同层级、同类型、key)
  57. 屏幕朗读、盲人模式怎么实现?有思路吗?(可访问性 a11y 方面的,没答上来)
  58. Eslint 在提交的时候会对代码进行检验,校验原理是什么?它是如何阻止提交的?(原理是 ast,没答上来)
  59. Git了解吗?知不知道 git merge 在合并代码的时候用到了哪些算法? (没答上来)
  60. 国际上的代码规范有了解吗?(他说了三个美国的公司,除了谷歌,其它都没听过)
  61. 平时怎么学习?有写博客么?(默默的掏出手机,打开掘金首页,给他看我的文章)
  62. 有了解过 pm 岗位相关的知识吗?(没有)
  63. 平时是怎么学习的?遇到困难怎么解决?
  64. 还有一些问题想不起来了

    三面:

    直接放弃了,二面结束就跑了

    2021 年 4 月 2 号:(已收到 offer)

    一面:

  65. http1.0 和 http2.0 相关的问题(没答上来)
  66. 假如后端给一张很大的图片,浏览器无法加载出来,如何查看它的大小(没答上来,答案是请求头里面可以看)
  67. V8 引擎(nodejs)的内存限制?(没答上来,回家之后百度了一下,答案是 32 位 0.7GB,64 位 1.4GB,这一块内容回家之后补习了一下,后面写了一篇文章,专门对V8引擎内存管理做了分析 - V8引擎垃圾回收原理解析
  68. 斐波那契数列(大概说了递归实现的思路)
  69. 上面算法的时间复杂度是 O(2*N),如何降低到 O(N)?(大概说了思路:降低时间复杂度,就要提高空间复杂度,具体怎么实现?没答上来,答案是把递归改成 for 循环)
  70. forEach 和 map 的区别,在 map 里面怎么写异步操作?(promise.all)
  71. setState 什么时候同步?什么时候异步?为什么是异步的?(这里说了 react15 和 react16 的区别、以及浏览器帧数、react 时间切片相关的概念)
  72. 如何用 webpack 实现:在 dev 环境用本地图片资源,打包到 pro 环境时,将资源上传到 cdn 并替换本地资源?(没回答上来,阿里云的OSS可以实现)
  73. Webpack 打包速度慢怎么解决?(瞎说的,说了 sourceMap 和 treeShaking)
  74. 首屏优化(这里说了很多种方案,都不是他想要的,并没有 get 到面试官的点)
  75. useEffect 里面写定时器失效的问题(没答上来,这里他想要的答案是用 ref 实现)
  76. 纯 css 实现宽高自适应的正方形(说了两个方案,vh 和 padding,这里他想要的标准答案就是padding)
  77. loader 和 plugin 的区别?自己有手写过 plugin 吗?(写过)
  78. TS 泛型相关(回答的不好)
  79. webpack 相关的其它问题,具体的想不起来了
  80. 平时有写博客么?(默默的掏出手机,打开掘金首页,给他看我的文章)
  81. 平时是如何学习的?在以前的工作中有没有做过比较自豪的事情?
  82. 项目问题

    二面:

  83. 离职原因
  84. 更喜欢写 vue 还是 react 呢?为什么?
  85. 对新工作的要求?对新公司的期望?
  86. 闲聊

    三面:

  87. 数据结构相关:栈、堆、指针(答的不好)
  88. Map 的底层结构是什么?(没答上来)
  89. 几种循环的速度和性能对比(for 倒序循环速度最快,其次是正序循环,其次是 forEach)
  90. 极限情况下的性能优化
  91. 不创建新变量的前提下,如何交换两个变量的位置?(这里说了解构,回答错误,他想要的答案是异或运算)
  92. 三大框架的区别和使用感受(老生常谈的问题了,vue 和 react 扯了一大堆,angular 没用过,不清楚)
  93. 什么是作用域?什么是闭包?
  94. 排序相关:分别说一下归并、插入、快排的思路,哪个最快?时间复杂度分别是多少?
  95. 跨端编译的原理说一下(扯到渲染器了)
  96. 你觉得你和其它大牛的差距在哪里?(这里回答了编程思想、还有底层的计算机基础,这个问题回答的好像让对方很满意)