全栈开发一面面经
完整信息
本篇目录
二战字节了[牛泪]
自我介绍
聊一下你最近在学什么东西?
我看简历里面提到有用过 Vue 3 的 Composition API,能简单解释一下 Composition API 它是怎么工作的?
没有它的时候是怎么写的?有它带来什么优势?
算法:JS 实现一个带并发限制的异步调度器 Scheduler,保证同时运行的任务最多有两个。完善代码中的 Scheduler 类,使得以下程序能正确输出(如图)
新增 add 功能,Schedule.add,它会返回一个 Promise,然后当这个添加的 Promise 被执行的时候,那个它返回的 Promise 会被调到,你自己加上另外一组对 return 的测试
我看到有两个地方,第一个是为什么把 while 改成了 if?出于什么考虑?然后会带来哪些变化?
第二个是,现在是A、B、C、D打印对吧,打到 D 的时候一共走了多少毫秒?(600 ms)
那这样 A 和 D 都是 600ms,那它们两个同时结束谁先打印呢?(A先打印,A 的 setTimeout 在 0ms 就创建好了;D 的 setTimeout 在 500ms 才创建。)
你项目里面,有自己解决问题的经验吗?就自己印象比较深刻的解决问题的一些相关经验。(讲了 SSE 断线重连)
你刚刚讲的 TaskID 和 MessageID 是谁分配的?
刚刚讲前端本地会把那个 ID 缓存下来,对吧?缓存在哪里呢?(状态管理,localStorage)
除了这个还有吗?(讲了前端对接大模型 ToolCall,处理流式半 JSON 解析;项目打包首屏加载优化等等)
你刚刚提到了那个 ToolCall 解决 返回的一个问题对吧?具体是怎么解决的?这个听起来是一个比较 common 的一个问题对吧?应该是大家都很容易遇到这个问题。有调研哪些社区的方案,然后最后是怎么决策,然后怎么解决的?然后讲一下细节嘛。
反问:中国交易与广告到底是做什么的 (原来就是抖音电商啊[喝可乐])
<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
本篇目录
当前问题0113
- 01
自我介绍
- 02
聊一下你最近在学什么东西?
- 03
我看简历里面提到有用过 Vue 3 的 Composition API,能简单解释一下 Composition API 它是怎么工作的?
- 04
没有它的时候是怎么写的?有它带来什么优势?
- 05
算法:JS 实现一个带并发限制的异步调度器 Scheduler,保证同时运行的任务最多有两个。完善代码中的 Scheduler 类,使得以下程序能正确输出(如图)
- 06
新增 add 功能,Schedule.add,它会返回一个 Promise,然后当这个添加的 Promise 被执行的时候,那个它返回的 Promise 会被调到,你自己加上另外一组对 return 的测试
- 07
那这样 A 和 D 都是 600ms,那它们两个同时结束谁先打印呢?(A先打印,A 的 setTimeout 在 0ms 就创建好了;D 的 setTimeout 在 500ms 才创建。)
- 08
你项目里面,有自己解决问题的经验吗?就自己印象比较深刻的解决问题的一些相关经验。(讲了 SSE 断线重连)
- 09
你刚刚讲的 TaskID 和 MessageID 是谁分配的?
- 10
刚刚讲前端本地会把那个 ID 缓存下来,对吧?缓存在哪里呢?(状态管理,localStorage)
- 11
除了这个还有吗?(讲了前端对接大模型 ToolCall,处理流式半 JSON 解析;项目打包首屏加载优化等等)
- 12
你刚刚提到了那个 ToolCall 解决 返回的一个问题对吧?具体是怎么解决的?这个听起来是一个比较 common 的一个问题对吧?应该是大家都很容易遇到这个问题。有调研哪些社区的方案,然后最后是怎么决策,然后怎么解决的?然后讲一下细节嘛。
- 13
反问:中国交易与广告到底是做什么的
