字节跳动 · 中国交易与广告(抖音电商)

全栈开发一面面经

完整信息

13 条问法 · 11 道题

本篇目录

二战字节了[牛泪]

  1. 自我介绍

  2. 聊一下你最近在学什么东西?

  3. 我看简历里面提到有用过 Vue 3 的 Composition API,能简单解释一下 Composition API 它是怎么工作的?

  4. 没有它的时候是怎么写的?有它带来什么优势?

  5. 算法:JS 实现一个带并发限制的异步调度器 Scheduler,保证同时运行的任务最多有两个。完善代码中的 Scheduler 类,使得以下程序能正确输出(如图)

  6. 新增 add 功能,Schedule.add,它会返回一个 Promise,然后当这个添加的 Promise 被执行的时候,那个它返回的 Promise 会被调到,你自己加上另外一组对 return 的测试

  7. 我看到有两个地方,第一个是为什么把 while 改成了 if?出于什么考虑?然后会带来哪些变化?

  8. 第二个是,现在是A、B、C、D打印对吧,打到 D 的时候一共走了多少毫秒?(600 ms)

  9. 那这样 A 和 D 都是 600ms,那它们两个同时结束谁先打印呢?(A先打印,A 的 setTimeout 在 0ms 就创建好了;D 的 setTimeout 在 500ms 才创建。)

  10. 你项目里面,有自己解决问题的经验吗?就自己印象比较深刻的解决问题的一些相关经验。(讲了 SSE 断线重连)

  11. 你刚刚讲的 TaskID 和 MessageID 是谁分配的?

  12. 刚刚讲前端本地会把那个 ID 缓存下来,对吧?缓存在哪里呢?(状态管理,localStorage)

  13. 除了这个还有吗?(讲了前端对接大模型 ToolCall,处理流式半 JSON 解析;项目打包首屏加载优化等等)

  14. 你刚刚提到了那个 ToolCall 解决 返回的一个问题对吧?具体是怎么解决的?这个听起来是一个比较 common 的一个问题对吧?应该是大家都很容易遇到这个问题。有调研哪些社区的方案,然后最后是怎么决策,然后怎么解决的?然后讲一下细节嘛。

  15. 反问:中国交易与广告到底是做什么的 (原来就是抖音电商啊[喝可乐])

<a href="https://www.nowcoder.com/creation/subject/b8fb04662b3e4a3698d028cff4f643f2" class="subject font-green" target="_blank" data-nc-subject-type="0" data-nc-subject-tag-id="0">#实习面试记录#</a>

<a href="https://www.nowcoder.com/creation/subject/928d551be73f40db82c0ed83286c8783" class="subject font-green" target="_blank" data-nc-subject-type="0" data-nc-subject-tag-id="818">#面经#</a>

<a href="https://www.nowcoder.com/creation/subject/577276924cf24cc4bfcdf89f7cb17004" class="subject font-green" target="_blank" data-nc-subject-type="0" data-nc-subject-tag-id="0">#秋招特别不鸣谢#</a>

<a href="https://www.nowcoder.com/creation/subject/a64215e319034314a1a76c477a5b76d0" class="subject font-green" target="_blank" data-nc-subject-type="0" data-nc-subject-tag-id="0">#我的OC时间线#</a>

<a href="https://www.nowcoder.com/creation/subject/c121d108a0d94e04b8821f14c3acadd5" class="subject font-green" target="_blank" data-nc-subject-type="0" data-nc-subject-tag-id="0">#发面经攒人品#</a>

<a href="https://www.nowcoder.com/creation/subject/8110fb28c4fd41898800517141377d44" class="subject font-green" target="_blank" data-nc-subject-type="0" data-nc-subject-tag-id="0">#选实习,你更看重哪方面?#</a>

<a href="https://www.nowcoder.com/creation/subject/ef89a25d023f42209804f3413b5bbaff" class="subject font-green" target="_blank" data-nc-subject-type="0" data-nc-subject-tag-id="0">#字节#</a>

<a href="https://www.nowcoder.com/creation/subject/eb05ef0c3aad4981af85e1f84c8d3db3" class="subject font-green" target="_blank" data-nc-subject-type="0" data-nc-subject-tag-id="0">#牛客AI配图神器#</a>

<a href="https://www.nowcoder.com/creation/subject/e3dfa7b81e5043bda88e86f3850d8082" class="subject font-green" target="_blank" data-nc-subject-type="0" data-nc-subject-tag-id="0">#第一份工作一定要去大厂吗#</a>

配图文字

// 题目:
class Scheduler {
  MAX = 2;
  add(promiseCreator) { ... }
  // ...
}

const timeout = (time, value) => new Promise(resolve => {
  setTimeout(() => {
    console.log(value);
    resolve(value);
  }, time)
})

const scheduler = new Scheduler()
const addTask = (time, order) => {
  scheduler.add(() => timeout(time, order))
}

addTask(1000, '1')
addTask(500, '2')
addTask(300, '3')
addTask(400, '4')
// output: 2 3 1 4
本篇目录
  1. 01
  2. 02
  3. 03
    我看简历里面提到有用过 Vue 3 的 Composition API,能简单解释一下 Composition API 它是怎么工作的?
  4. 04
  5. 05
    算法:JS 实现一个带并发限制的异步调度器 Scheduler,保证同时运行的任务最多有两个。完善代码中的 Scheduler 类,使得以下程序能正确输出(如图)
  6. 06
    追问
    新增 add 功能,Schedule.add,它会返回一个 Promise,然后当这个添加的 Promise 被执行的时候,那个它返回的 Promise 会被调到,你自己加上另外一组对 return 的测试
  7. 07
    那这样 A 和 D 都是 600ms,那它们两个同时结束谁先打印呢?(A先打印,A 的 setTimeout 在 0ms 就创建好了;D 的 setTimeout 在 500ms 才创建。)
  8. 08
    你项目里面,有自己解决问题的经验吗?就自己印象比较深刻的解决问题的一些相关经验。(讲了 SSE 断线重连)
  9. 09
  10. 10
    追问
    刚刚讲前端本地会把那个 ID 缓存下来,对吧?缓存在哪里呢?(状态管理,localStorage)
  11. 11
    追问
    除了这个还有吗?(讲了前端对接大模型 ToolCall,处理流式半 JSON 解析;项目打包首屏加载优化等等)
  12. 12
    你刚刚提到了那个 ToolCall 解决 返回的一个问题对吧?具体是怎么解决的?这个听起来是一个比较 common 的一个问题对吧?应该是大家都很容易遇到这个问题。有调研哪些社区的方案,然后最后是怎么决策,然后怎么解决的?然后讲一下细节嘛。
  13. 13

同作者面经

展开其余 9 篇收起其余 9 篇

相关公司