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

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

一面

  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. 算法题:老师分饼干,每一个孩子只能获得一块饼干,但每一个孩子想要的饼干大小不尽相同。 目标是尽可能让更多的孩子满意。 如孩子的要求是 1, 3, 5, 4, 2,饼干是1, 1, 最多能让1个孩子知足。如孩子的要求是 10, 9, 8, 7, 6,饼干是7, 6, 5,最多能 让2个孩子知足。
  5. 算法题:给定一个正整数数列a, 对于其每一个区间, 咱们均可以计算一个X值; X值的定义以下: 对于任意区间, 其X值等于区间内最小的那个数乘上区间内全部数和; 如今须要你找出数列a的全部区间中, X值最大的那个区间; 如数列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~vue