字节跳动面试记录

一面

  1. 登录怎么实现的
  2. 单点登录从前端到后台应该怎么实现
  3. 扫码登录怎么实现
  4. TCP/IP 四层网络模型
  5. 用户输入url到页面展示的过程
  6. DNS递归查找的弊端
  7. 闭包,利用闭包改造函数,为什么用 let
  8. 实现一个ES5的继承
  9. 类数组去重的算法题

二面

  1. React 怎么把 JSX 转成Native代码的
  2. Babel 怎么把 JSX 代码转换成 React.createElement 语法的,类似的转义都有哪些
  3. setState 为什么是异步的,内部是怎么实现异步的
  4. React 是怎么处理事件的
  5. React的渲染流程
  6. 宏任务、微任务的区别是什么,除了执行流程还有什么区别
  7. postMessage、fetch是宏任务还是微任务,小程序调用JS Bridge 是宏任务还是微任务,区别微任务宏任务的标准是什么?
  8. 如何实现一个 setTimeout
  9. 电脑的ip是如何分配的
  10. 用ping指令得到的百度ip能直接访问,但为什么用ping指令得到的知乎ip不能直接访问
  11. IP和域名的对应关系是怎么样的
  12. 斐波那契数列,时间复杂度、空间复杂度
  13. 实现一个 Alert 组件,写出组件式调用和声明式调用,怎么销毁、怎么共用

三面

  1. 为什么选择现在的公司
  2. 为什么离开现在的公司
  3. 公司现阶段有什么问题吗
  4. 工作流程怎么样
  5. 有什么bug流到线上吗,怎么解决的,从工程化的角度讲一下怎么避免问题流转到线上
  6. 你们公司为什么要用RN,除此之外,你还会选什么
  7. 你们公司的项目怎么区分各个环境
  8. 图片转换除了前后台做,还有什么方式吗(云服务)
  9. 怎么判断是否返回给用户一个webp格式的资源
  10. HTTP 头部中的字段哪些是请求头有的而响应头没有的
  11. 共享一下屏幕,打开一个页面,跟我说一下那些请求命中缓存
  12. 递归和循环的方式写一个斐波那契
  13. 你觉得下面这个会输出什么(注意变量提升):
  14. 写一个模板字符串转义
  15. 递归和循环在代码的执行层面有什么区别

总结

毕业之后的第一次面试,上来就是宇宙节,在比较懵的情况下打到了三面,每次面试都超过了一个小时,面试官很nice,给自己表现打80分吧,能答的都尽量流畅的答出来了,有一些小的失误,感觉面试题回答准确率在70%~80%左右,最后的大题比较拉。

一面二面比较考察网络原理让我比较意外,书本的知识已经忘却的很多了,但是多亏于对私有服务器的维护经验,勉强答对了一部分题目,平时网络原理这方面还是要多实践(这就去续费服务器)。三面偏重平常的项目解决能力以及对项目的见解,同时会考察有没有紧追最新的技术动向。算法题真的是很给面子了,说实话都不难,但是自己的表现有点惨不忍睹,多刷题吧(唉。比较意外没有考察任何css相关的,也没有考察 Promise。

后续打算:

  1. 补网络原理
  2. 刷剑指offer
  3. v8引擎