6

金三银四的前端面经(字节+58)

 3 years ago
source link: https://zhuanlan.zhihu.com/p/362606901
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

金三银四的前端面经(字节+58)

北京奇观技术有限责任公司 软件开发工程师

个人情况:普通二本、软件工程专业、20届毕业、无大厂经历。

面试情况:58三面挂 、字节深圳抖音和影映部门二面挂,北京的一个部门通过。其他的明源云客三面通过、拼多多一面通过然后主动终止了(没有记录)。

字节一面:

  1. 问项目,平时怎么做app和h5的通信的。
  2. 什么情况下用webview什么时候写rn。
  3. 公司为什么用rn。
  4. 数据库索引还有其他数据知识 。(因为我做过一点全栈)
  5. 浏览器缓存 。
  6. eventloop 做题+表述。
  7. this指针的问题 做题加表述。
  8. 算法 二叉树对称 和 杨辉三角。

第一面我的自我介绍比较全面,包括各个项目介绍了十分钟,应该是因为这一面的面试官给的评价比较好,所以后面挂了两个部门还能被约面试。

字节抖音部门二面 :

  1. RN桥接的原理 。
  2. 做微信小程序为什么选择uni-app 。
  3. 如何优化动画,什么是硬件加速 。
  4. 移动端如何适配的 。
  5. position各种属性都是怎么用,有了解过css3新出的posstion的属性吗 。
  6. React hook 模拟shouldComponentUpdata 。
  7. 算法是一个特殊的对象输出 我用的split实现的 做完了 面试官想让我用正则表达式做 。
  8. 四级过没 。
  9. 大学绩点是多少。

这一面比较特殊,约的晚上六点面试,结果下午两点半面深圳明源云客时,两点半面到了五点半,导致字节这边面试推迟,感觉面试官不是很高兴吧,也没问什么东西。然后hr说这边挂了,原因是四级没过,感觉挂的比较奇怪,就主动帮我约了其他部门的二面直通。

字节影映部门二面:

  1. window.onload和DocumentContentLoaded以及给了各种场景让你说js、css、html执行渲染顺序,就是很深的问你浏览器渲染过程。
  2. ReactNative用的什么版本,这次大的版本更新ReactNative有什么变化。
  3. 硬件加速。
  4. git rebase和git merge有什么区别。
  5. 虚拟dom原理。
  6. setState原理和过程和React合成事件。
  7. Redux中间件怎么实现的 看过源码吗 。
  8. 数组reducer和filter方法 。
  9. 算法是二叉树右视图(做出来了又改成了s形遍历) 。

这一面比较可惜,前面其实一直再问我RN的一些原理问题,了解的不是很深就问面试官能不能问React的问题,后来感觉答的可以,但是还是挂了。但面试评价感觉不差,所以后面直接继续投简历直接就通过了。(hr和面试官能看到每一面的面试官评价)

字节北京一面:

  1. 详细讲解浏览器缓存、Etag规则等
  2. useMemo使用场景 一直问什么时候应该用useMemo,说我答的是useMemo怎么用的一直没答出来,useCallback也是
  3. 算法是写一个方法每次调用输出一个质数 可以用闭包或是generator
  4. 第二个算法是两个有序链表的合并

字节北京二面:

  1. 一堆跨端问题 (包括小程序和APP 问的比较全,还包括一些思考问题,比如:如果你需要为团队进行技术选型你如何去做)
  2. 性能优化(一是自己平时怎么优化的 二是性能优化的指标)
  3. 一些个人问题 四级没过 这边要求英语你怎么办 你在深圳为什么来北京
  4. 算法是xxxxxxxx.22 拆成 xx.xxx.xxx.22 写完问你会用正则些不

这次的一面和二面连着面的,总共面了两个小时四十分钟,中间很多问题记不清楚了。

字节北京三面:

  1. 介绍一个你觉得做的好的项目 。
  2. 跨端如何选择方案 。
  3. 前端性能优化 答完问了很多场景。
  4. 然后因为我之前做的创业项目,问项目怎么盈利的、如何推动业务发展的,目前做的贷款项目如何引流的,如何获利的,总之就是问了很多公司的业务问题,刚好因为之前是老板带着我做的,所以相对比较了解。
  1. 前端模块化历程
  2. http、csrf攻击
  3. cookie登录和session登录还有jwt
  4. vue路由原理
  5. float原理(css浮动)
  6. 介绍this
  7. async/await 、promise、generator

这一面我是去现场面的 跟面试官喷了挺久

  1. flex布局
  2. sass less了解过没 ,用过sass封装函数吗。
  3. import和commonjs有什么区别,import时的过程。
  4. webpack是如何打包的,webpack原理懂吗。
  5. 设计模式了解吗 观察者模式工作中用过吗。
  6. git reset 和一些别的git知识。
  7. 平时有为公司封装什么组件或是方法吗。
  8. RN和H5全流程相同的业务,你有想过如何让他们共用吗?而不是写两套代码。
  1. 讲一个你做的能突出你的技术风格的项目。
  2. 为什么用uniapp,uniapp原理,uniapp有什么坑,什么地方需要写原生。
  3. 构建一个ios应用的流程。
  4. reactnative长列表优化。
  5. vuereact异同点,虚拟dom原理,router实现原理。
  6. 首屏如何计算,单页面首屏如何计算。
  7. 如果你接到一个需求你的工作流程。
  8. 这半年的计划。

总结其实就是两个需要注意的地方,一个是基础要ok,还有就是对自己做过的项目有过深刻的思考,不能只停留在业务实现上。其他就是不要放弃,我被字节挂了两次我也坚持继续投了,要相信自己。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK