字节跳动 - 今日头条 - 前端面经

之前面试其实拿到了不少 offer,感兴趣的可以看看我关于这次挪坑的总结,最终权衡各种因素选择了字节跳动 - 今日头条的岗位。

入职字节跳动已经两天了,从入职的这两天来看,我觉得我这次跳槽是一个正确的决定,并且也很认可字节跳动的氛围和环境。这是一个很开放、年轻化、活跃的公司,但是在流程、管理、技术上却完善的不像一家年轻的公司,很符合我对自己下一份工作的期许,我相信我可以在这里学到不少东西,也可以贡献一些自己已有的东西。

写这篇面经主要是来捞简历的,哈哈哈哈,字节跳动长期不限量招收前端工程师,中高级、校招社招都收,有需要内推的同学欢迎邮件骚扰我,邮件地址:mail@quincychen.cn

以下是面经内容

一面

  • 自我介绍
  • mysql 和 mongoDB 的底层存储是什么原理,有什么区别?

    • B+Tree 有什么特点
  • redis 内部常用的数据结构有哪几种?
  • 一个 200 状态的请求,是否一定会经过服务器?

    • 浏览器缓存分为哪几种?具体讲一讲
  • 状态机的三个组成部分是什么?
  • service worker可以做什么?局限或者说缺点是什么?
  • 说说你对 HTTPS 的理解

    • HTTPS 密钥的交换过程
    • HTTPS 绝对安全吗?HTTPS欺骗是怎么实现的?
  • react 是怎么将数据变更反应到视图上的
  • vue是怎么解析模板的?
  • 三大框架从数据到视图的原理

    • 谈谈你对虚拟Dom的理解
    • angular的脏检查和vue的双向数据绑定有什么区别?
  • 聊一聊你的工作经历
  • 你提到你有负责 sdk 开发,讲一讲你开发过的 SDK

    • cloudbus-event

      • 事件发布订阅怎么实现的?
    • terra-uploader

      • 大文件上传怎么实现?有什么注意点?

        • 分片上传怎么实现?
        • 断点续传怎么实现?
    • app-info-parser

      • 安装包的解析原理是什么?
  • 你有什么想问我的吗

二面

  • 自我介绍
  • 在线编程:实现 bind 函数
  • 在线编程:实现 call,apply 函数
  • 在线编程:实现一个判断变量类型的函数
  • 在线编程:a~z 有 26个字母,按照 1~26 编码,现在给定一个数字字符串,输出所有可能的解码结果,如:输入 1234,输出 ['axd', 'abcd', 'lcd']
  • 类数组怎么转换为数组?
  • 箭头函数和普通函数有什么区别?
  • // 以下代码执行会输出什么
    const  myfun = () => {
        const args = arguments;
        if (true) {
            console.log(args.join());
        }
    }
    myfun(1, 2);
  • 实现一个 div 相对视口居中
  • marigin 塌陷是什么
  • vue3.0 和 vue2.x 的有什么区别
  • 为什么会做 app-info-parser 这个开源项目
  • 你有什么想问我的吗

三面

  • 自我介绍
  • HTTP2 与 HTTP 的区别
  • CDN 原理
  • Vue 的 Dom diff 的实现

    • 完全比较两个 Dom 树和只比较同层节点的算法复杂度各是多少
    • Dom diff 具体流程是怎么样的,内部细节能说一下么
  • 说说你对 Node 运维的了解
  • 假如现在,我说有一个页面打开有点慢,交给你来负责优化,你的思路和做法是什么

    • 前端优化的指标有哪些,通过什么手段获取?
  • 分别讲讲 restful 和 graphQL 及其优缺点
  • 你现在有面其他公司吗?手上有没有其他offer?
  • 如果阿里腾讯都过的话,包括字节跳动,这三家你会基于什么去考虑?
  • 你有什么想问我的吗

总结

字节跳动很重视编程能力,写代码的题目比较多,也会有算法题考核,所以想要到字节跳动的同学建议多训练一下这一类的编程题。给我出的题目难度其实不高,唯一的一道算法题是简单的一道动态规划(你别看我,一般的动归真的不难啊!),其他的编程题都是很基础的内容,没有什么难度。

字节跳动这一次面试下来,面试体验还是很不错的,面试官和 HR 也很有诚意,非常坦诚的罗列字节的情况,包括优缺点,拉人也很真诚,这一点加了很多分,最终权衡公司技术水平、薪酬情况等因素,pick 了字节跳动。

有意向加入字节跳动的朋友们,欢迎砸简历或者邮件与我联系!!邮箱:mail@quincychen.cn

内推成功奖金五五分成!!(肮脏但是诱人的 py 交易

我在熬夜,熟了喊你

51 声望
8 粉丝
0 条评论
推荐阅读
开源个 react 缩略组件,支持自定义缩略符、尾文本过滤、缩略回调、富文本缩略等
在缩略符 “...” 前面会小概率出现标点符号,看起来很不雅观。这么长时间这个问题一直没解决,因为自己手头的业务有点多也就没去关注这个他人需求。

QuincyChen阅读 1.2k

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木60阅读 6k评论 16

再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...

libinfs39阅读 6.2k评论 12

封面图
从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木39阅读 7.1k评论 6

CSS 绘制一只思否猫
欢迎关注我的公众号:前端侦探练习 CSS 有一个比较有趣的方式,就是发挥想象,绘制各式各样的图案,比如来绘制一只思否猫?思否猫,SegmentFault 思否的吉祥物,是一只独一无二、特立独行、热爱自由的(>^ω^&lt...

XboxYan42阅读 2.8k评论 14

封面图
还在用 JS 做节流吗?CSS 也可以防止按钮重复点击
举个例子:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,比如只允许每300ms提交一次,这时候我想大部分同学都会到网上直接拷贝一段throttle函数,或者直接引用lodash工具库

XboxYan34阅读 2.2k评论 2

封面图
从零搭建 Node.js 企业级 Web 服务器(二):校验
校验就是对输入条件的约束,避免无效的输入引起异常。Web 系统的用户输入主要为编辑与提交各类表单,一方面校验要做在编辑表单字段与提交的时候,另一方面接收表单的接口也要做足校验行为,通过前后端共同控制输...

乌柏木32阅读 6.1k评论 9

我在熬夜,熟了喊你

51 声望
8 粉丝
宣传栏