字节跳动今日头条前端面经(4轮技术面+hr面)

Posted androidstarjack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字节跳动今日头条前端面经(4轮技术面+hr面)相关的知识,希望对你有一定的参考价值。

点击上方蓝色“终端研发部”,选择“设为星标”

学最好的别人,做最好的我们

作者:要加油啊
原文:https://juejin.im/post/6844904088337907720
 

笔者读大三,前端小白一枚,正在准备春招,人生第一次面试,投了头条前端,总共经历了四轮技术面试和一轮hr面,不多说,直接上题

插句题外话,对于初学者来讲一些初级或者刚工作的同学,刚开始没有合适的书籍或者是资源,那么学习过程适非常痛苦的。我整理的部分书籍开源项目前已经有200+并持续更新,并且我也可以亲自指导学习Java,对于想入门的同学很有帮助:

技术github学习地址:https://github.com/codeGoogler/JavaCodeHub
程序员编程书籍:https://github.com/codeGoogler/

一面

  1. 自我介绍,然后问了为什么学习前端

  2. 算法:实现36进制转换

  3. 简述https原理,以及与http的区别

  4. 操作系统中进程和线程怎么通信

  5. node中cluster是怎样开启多进程的,并且一个端口可以被多个进程监听吗

  6. 实现原生ajax

  7. vue-router源码

  8. vue原理(手写代码,实现数据劫持)

  9. 算法:树的遍历有几种方式,实现下层次遍历

  10. 算法:判断对称二叉树

第一次面试,当时比较紧张,面试官很和蔼,面试中问到操作系统的进程,当时不记得操作系统, 就提到了node多进程,然后面试官就问了cluster是怎样开启多进程的,并且一个端口可以被多个 进程监听吗?

答完后面试官就问了后面写完vue数据劫持的时候

面试官又问了Object.defineProperty除了 set get外还有什么属性,我回答了configurable enumerable。vue-router主要提到了hashchange 事件等,顺便跟面试官聊了一下h5的historyAPI。

时间总共是50分钟左右,一面完了后面试官让

我等五分钟,接下来二面就开始了

二面

  1. 介绍一下项目中的难点

  2. let var const 有什么区别

  3. 你知道哪些http头部

  4. 怎么与服务端保持连接

  5. http请求跨域问题,你都知道哪些解决跨域的方法

  6. webpack怎么优化

  7. 你了解哪些请求方法,分别有哪些作用和不同

  8. 你觉得typescript和javascript有什么区别

  9. typescript你都用过哪些类型

  10. typescript中type和interface的区别

  11. react怎么优化

  12. 算法题:合并乱序区间

笔者在回答http头部的时候,顺带跟面试官聊到了浏览器缓存,回答跨域的时候,面试官又 让我用jsonp实现一下跨域,回答webpack的时候提到了happypack和treeshaking,面试官就 顺带问了一下他们的作用

算法题我当时没有写出来(主要是因为菜),二面大概40多分钟结 束,面试完后面试官说稍后hr会联系我,让我注意保持通信,还没过一小时,hr打电话约我 第三次面试时间,不得不说,字节的效率真的高

三面

  1. 你了解node多进程吗

  2. node进程中怎么通信

  3. node可以开启多线程吗

  4. 算法题:老师分饼干,每个孩子只能得到一块饼干,但每个孩子想要的饼干大小不尽相同。

  5. 目标是尽量让更多的孩子满意。如孩子的要求是 1, 3, 5, 4, 2,饼干是1, 1,

  6. 最多能让1个孩子满足。如孩子的要求是 10, 9, 8, 7, 6,饼干是7, 6, 5,最多能

  7. 让2个孩子满足。

  8. 算法题:给定一个正整数数列a, 对于其每个区间, 我们都可以计算一个X值;

  9. X值的定义如下: 对于任意区间, 其X值等于区间内最小的那个数乘上区间内所有数和;

  10. 现在需要你找出数列a的所有区间中, X值最大的那个区间;

  11. 如数列a为: 3 1 6 4 5 2; 则X值最大的区间为6, 4, 5, X = 4 * (6+4+5) = 60;

三面大概是1小时,面试官比较冷漠,就问你知道不知道,算法思路,然后实现这个算法, 面试完感觉凉凉,但是第二天就收到hr到来的电话,约下一轮的面试时间。

四面

  1. 算法题:两个有序链表和并成一个有序链表

  2. https与http有什么区别(一面刚好也被问到)

  3. cookie有哪些属性

  4. cookie,session,localstorage,sessionstorage有什么区别

  5. 怎么禁止js访问cookie

  6. position有哪些属性

  7. 你知道哪些状态码

  8. options请求方法有什么用

  9. less,sass它们的作用是什么

  10. 平时怎么学习

  11. 你什么时候可以来实现

  12. 能实习多久

四面算是比较简单的一次面试,面完后第二天晚上hr打来了电话,约与hr面的时间

hr面

  1. 你什么时候接触前端的

  2. 平时怎么学习

  3. 对未来的规划是什么

  4. 你对哪个项目印象深刻,说一下项目的难点

  5. 你对我们公司有什么了解

  6. 能实习多久 等等

hr面主要聊一聊人生理想,未来规划啥的,大概半小时的时间

四轮技术面+一轮hr面结束,学习到了不少,面试也是一个学习检测自己的过程,面试前大概复习了 一周的时间,把以前的代码看了一下,字节跳动比较注重算法,面试前刷了下leetcode和剑指offer, 也刷了些在牛客网上的面经。。大概就说这些了,写代码去了~ 祝大家都能收获大厂offer~

关于如何学习Java,一方面需要不断的去学习,把基础知识学扎实,另一方面也要认识到java的学习不能仅仅靠理论,更多的是靠实操,所以要多练习多做项目,在实践中学习才是最好的学习方法。很多人刚开始不知道怎么去学习,这里我将一些重要的技术文章整理到了github上开源项目上,希望能给大家带来一些帮助,项目是:JavaCodeHub

另外,还整理了一些针对于程序员的编程书籍项目,都放到了github上面,项目为:ProgramBooks 需要的话可以自取。地址:https://github.com/codeGoogler/ProgramBooks

如果github访问太慢?我同时也把去放到了码云上面ProgramBooks

最后,照旧安利一波我们的公众号:「终端研发部」,目前每天都会推荐一篇优质的技术相关的文章,主要分享java相关的技术与面试技巧,我们的目标是:知道是什么,为什么,打好基础,做好每一点!这个主创技术公众号超级值得大家关注。

以上是关于字节跳动今日头条前端面经(4轮技术面+hr面)的主要内容,如果未能解决你的问题,请参考以下文章

2022字节跳动数仓实习面经(23面hr面)

字节跳动后端开发实习面经一二三面+HR面(已offer)

字节跳动后端开发实习面经一二三面+HR面(已offer)

字节跳动后端开发实习面经一二三面+HR面(已offer)

字节跳动八进八出,offer到手,发现项目不重要算法才最重要

做好十足准备面字节跳动,五面都过了,HR告诉我这个原因我被刷了...