秋招得物前端面试之一面(30min)

提前进去的,面试官也后脚刚进来,问我现在方便开始吗,就提前开始了。面试官看着很资深,比较严格。

先让我自我介绍,然后就直接让我手撕代码。
有个小插曲,一开始看不到屏幕上面试官写的代码,于是后来就贴图互动了,让我在自己电脑上的vscode实现。

1. 自己用函数来复现一下array.reduce()进行数组求和的操作,并挂载到array的原型上。
2. 实现一个场景的需求,假设需要一次性发送数千个promise请求,实现每次发送固定批次的量,并且实现并行处理,全部执行完之后返回一个数组,存放promise的返回值。
然后根据第二问开始问八股。
3. 同步和异步的区别。
4. 为什么需要异步,作用是什么。
反问环节。问了部门的业务和技术栈(说以react为主),以及对我的评价(只让我回去检查设备问题,没有评价
总流程30min多一点,因为是提前进去的。
#得物面试#
全部评论
你这个比其他人的难好多
1 回复 分享
发布于 2023-08-27 16:12 浙江
1. Array.prototype.myReduce = function (cb, initialValue) { let pre = initialValue ? initialValue : 0; const _reduce = () => { for (let i = 0; i < this.length; i++) { pre = cb(pre, this[i]); } }; _reduce(); return pre; };
3 回复 分享
发布于 2023-08-27 19:41 湖北
第一个题比较简单 第二个题感觉好像问了挺多的 找了之前的笔记改了下
3 回复 分享
发布于 2023-08-27 19:43 湖北
我刚面试完,我应该和你是同一个面试官,感觉很专业,问题就第一题不一样,其余基本一样,秋招第一场面试,有点紧张表现得不好
1 回复 分享
发布于 2023-08-27 17:37 北京
//模拟网络请求任务 const timeout = (time) => { return new Promise((resolve) => { setTimeout(() => { resolve("time is:" + time); }, time); }); }; const scheduler = new Scheduler(); const addTask = (time, order) => { return new Promise((resolve, reject) => { Promise.resolve(scheduler.add(() => timeout(time))).then( resolve, reject ); }); }; Promise.all([ addTask(1000, "1"), addTask(500, "2"), addTask(300, "3"), addTask(400, "4"), ]).then((res) => { console.log(res); });
1 回复 分享
发布于 2023-08-27 19:42 湖北
大佬你这个确实难好多,我这里上来就说看简历说话,也没算法题什么的🙀
1 回复 分享
发布于 2023-08-27 21:26 河北
艹,原题一模一样,写了并发控制,面试官直接让我回去看看
点赞 回复 分享
发布于 2023-08-27 18:01 天津
大佬可以投递满帮保个底试试哈 https://www.nowcoder.com/feed/main/detail/a4df4a929a9148edb4a927e671a467e2?toCommentId=16770682
点赞 回复 分享
发布于 2023-08-27 19:39 江苏
2. class Scheduler { constructor(parallelCount = 2) { this.parallelCount = parallelCount; this.runningCount = 0; this.task = []; } add(task) { return new Promise((resolve, reject) => { this.task.push({ task, resolve, reject, }); this._run(); }); } _run() { if (this.task.length > 0 &amp;&amp; this.runningCount < this.parallelCount) { const { task, resolve, reject } = this.task.shift(); this.runningCount++; task() .then(resolve, reject) .finally(() => { this.runningCount--; this._run(); }); } } }
点赞 回复 分享
发布于 2023-08-27 19:42 湖北
同一个面试官,同一个问题,我是手写防抖节流,蹲个后续
点赞 回复 分享
发布于 2023-08-27 23:30 陕西
第二题是相当于手写promise.all吗
点赞 回复 分享
发布于 2023-08-31 16:00 浙江

相关推荐

评论
3
46
分享
牛客网
牛客企业服务