前段时间面试了一下字节跳动(抖音)的前端实习岗位,经过三轮技术面后拿到了 offer,这里分享一下面经。
第一面(45min)
第一面交叉面,主要考察了一些前端以及计算机网络等基础,另外也考察英文文档的阅读以及理解能力。
- 箭头函数相关(作用域、实例化)
- TypeScript 相关(接口、枚举、声明)
- HTTP1.x 和 HTTP2.0 的区别
- DNS 的工作流程
- 讲一下所知道的状态码,重点说一下 304
- HTTP 缓存(强制缓存、协商缓存)
- 给一段 Lodash 英文文档,三分钟看完,然后解释 API 的作用
手写题:
第二面(45 min)
第二面一半以上时间都在手写代码,中间夹杂着一些基础的问题。
- React 生命周期
- 函数式组件与类组件的区别
- 前端可以优化的地方,balabala...
手写题:
- 分页组件(函数组件)
- 三数之和 (双指针,如何去除重复)
- 函数柯里化,实现下面的代码
sum(1,2)(2)() // 5 sum(3)(3)() // 6
用闭包以及 ES6 的 Rest 参数很容易实现:
function sum(...args1) { // 求和 let x = args1.reduce((prev, next) => {return prev+next;}) return function(...args2) { if (args2.length == 0) return x; // 求和 let y = args2.reduce((prev, next) => {return prev+next;}) return sum(x+y) } } // 测试 console.log(sum(1,2,2)(7)())
第三面(40 min)
三面技术问题很少,穿插着项目问了一些,循序渐进。
- 实习经历
- 聊项目
- 如何学习
- 未来规划
- 入职时间
HR 面(20 min)
简单轻松愉快的交流,聊了在学校的一些经历,自己的一些兴趣爱好,实习的一些收获等等,面试结束后不久就收到了 Offer。
以上就是一个面经的总结,不得不说,字节面试的效率很高,一天之内全部面试完。另外算法以及相关的手写题占比挺高,需要提前准备以及练习。
分享一下自己整理的前端面试手写题,面试出现的概率还挺高的,尽量理解,实在不行就把这些背下来,面试应该不成问题。
全部评论
(16) 回帖