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

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

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

1. 自己用函数来复现一下array.reduce()进行数组求和的操作,并挂载到array的原型上。
2. 实现一个场景的需求,假设需要一次性发送数千个promise请求,实现每次发送固定批次的量,并且实现并行处理,全部执行完之后返回一个数组,存放promise的返回值。
然后根据第二问开始问八股。
3. 同步和异步的区别。
4. 为什么需要异步,作用是什么。
反问环节。问了部门的业务和技术栈(说以react为主),以及对我的评价(只让我回去检查设备问题,没有评价
总流程30min多一点,因为是提前进去的。
#得物面试#
全部评论
你这个比其他人的难好多
1 回复 分享
发布于 2023-08-27 16:12 浙江
第一个题比较简单 第二个题感觉好像问了挺多的 找了之前的笔记改了下
3 回复 分享
发布于 2023-08-27 19:43 湖北
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 湖北
大佬你这个确实难好多,我这里上来就说看简历说话,也没算法题什么的🙀
1 回复 分享
发布于 2023-08-27 21:26 河北
//模拟网络请求任务 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 17:37 北京
第二题是相当于手写promise.all吗
点赞 回复 分享
发布于 2023-08-31 16:00 浙江
同一个面试官,同一个问题,我是手写防抖节流,蹲个后续
点赞 回复 分享
发布于 2023-08-27 23:30 陕西
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 湖北
大佬可以投递满帮保个底试试哈 https://www.nowcoder.com/feed/main/detail/a4df4a929a9148edb4a927e671a467e2?toCommentId=16770682
点赞 回复 分享
发布于 2023-08-27 19:39 江苏
艹,原题一模一样,写了并发控制,面试官直接让我回去看看
点赞 回复 分享
发布于 2023-08-27 18:01 天津

相关推荐

06-05 00:54
已编辑
北京邮电大学 前端工程师
蹲个女生舍友,杭州西溪。--------------以下是正文--------------先说一下我个人情况,北邮通信工程,我在本科的时候做过几个微信小程序,忘光了。在今年2月份开始极速学习前端基础。代码算法方面,研一和大四的时候跟着代码随想录刷过一次。轻微流水账,这是一个记录贴。初衷希望能给0实习转码的同学一些鼓励,相信一定能找到愿意培养自己的公司。第一次找工作没什么经验,秋招会及时复盘面经发出来,这次就先不弄了。我从1月份就开始调研咋学习前端,开始慢悠悠学习html和css知识,到二月份开学了才开始对暑期实习感到十分的担忧,开始拼命学js。之前就接触过相关内容所以学的很快,半个月左右就学完了。然后就开始一边学习react一边做项目。4月初开始陆续投递,等了一周就开始有面试了。第一个面的美团,上来就是一个hard代码题,hot100还没刷完的我感到十分挫败。五月中旬之前,我一直处于反复一面的状态。基本上一天三面。晚上还得做笔试。崩溃边缘,但是还得鼓励(欺骗)自己下周必拿offer。或许是乐观的心态,让我在16号以后开始收到一些公司的二面了。包括美团,阿里(智能信息),腾讯,字节。我非常高兴,说明我五一不出去玩,恶补八股和手撕是真的有用。运气好了之后就开始一直破天荒的好。我阿里的淘天和阿里云也进二面了。我记得自己虽然表现的还行,但是整体并不突出。5月20/21号,这两天是小情侣过节的日子。我记得我20号面了美团,阿里智能信息二面,21号面了腾讯,字节,淘天二面,晚上还做了一个笔试。累的半死的同时,实验室导师还在催我的科研进度,我回复:好的。没想到,阿里智能信息居然问了我通信原理,本科学科等很多很泛的问题。我以为要凉了,结果没过一个小时,hr联系我:你好,你的二面已经通过,需要您再做一个线上笔试。我欣喜若狂,不敢相信二面居然问这些都能过。笔试做完了之后,也是立马有hr联系我,约hr面。5月22号,hr面。当场发offer,我整个人都懵了。心里怀疑对方是不是诈骗公司,然后又反复确认。缓了半天,才发现自己居然能去阿里了。简直是做梦都不敢想。我记得我前几天面试压力太大,还梦到过实验室组会汇报自己的offer进度,大家都去阿里。而我连甚至一个offer都没有可以汇报。当场吓醒。最后必须说,阿里真的太好了,愿意相信实习生的潜力,真的给了很多0实习的同学实习机会。我永远是阿里孝女!!!!!---------------分割线-----------记录一下自己转码以来遇到的一些贵人。1.字节的一面面试官,在我最崩溃的时候给了我鼓励和肯定。当时给我面了一个半小时。最后我问他对建议的时候,他说,“你是候选人里面算是比较优秀的了,但是我们这个业务要求很高,我担心把你招进来影响你的成长。”并且还给我推荐学习资料,红宝书。还和我说,“如果你想要继续做前端的话,我可以告诉你,前端依然是十分有前途的方向,希望你可以继续努力。”他的话真的十分中肯。当时我甚至感动哭了,我非常清楚自己不是因为被拒绝哭了(毕竟其实已经麻了)2.腾讯的一位面试官。给了我很多叮咛,告诉我准备好在面试等等。让我感觉十分有力量,我当时觉得我身边那么多帮助我的好人,我怎么可能不成功呢。3.北邮的一位学长,他在一开始给了我职业选择方面的建议,让我坚定了自己的道路。4.我遇到的每一个面试官都出奇的好,没有因为我很菜就表现不耐烦,十分感恩他们的手下留情。5.感谢有对象的陪伴,让我有好好吃饭的动力,并且也一直督促我学习,还帮我把一些高频的手撕和高频的计算机相关的八股梳理出来。有的时候真的想放弃,但是他一直在我旁边和我说,一定要坚持,不能放弃。
点赞 评论 收藏
分享
飞书前端一面面经:从基础到实战的技术碰撞一、面试初印象这次飞书前端一面给我的整体感受是节奏紧凑且直击技术核心。面试官风格沉稳,问题由浅入深,既考察基础能力,又注重解决实际问题的思维,是一次很有价值的技术交流。二、面试问题复盘1.&nbsp;CSS&nbsp;基础考察面试官开场便询问我&nbsp;CSS&nbsp;基础掌握程度,我坦诚表示“不是很好”,随后进入具体问题:如何实现三列布局,要求两边宽度固定,中间宽度自适应。我首先提到可以用&nbsp;JavaScript&nbsp;监听窗口变化动态调整宽度,但面试官希望用纯&nbsp;CSS&nbsp;方案。我迅速想到&nbsp;Flex&nbsp;布局,并详细解释了实现思路:.container&nbsp;{&nbsp;&nbsp;display:&nbsp;flex;}.left,&nbsp;.right&nbsp;{&nbsp;&nbsp;width:&nbsp;200px;&nbsp;/*&nbsp;固定宽度&nbsp;*/}.center&nbsp;{&nbsp;&nbsp;flex:&nbsp;1;&nbsp;/*&nbsp;自动分配剩余空间&nbsp;*/}接着,面试官追问&nbsp;calc()&nbsp;函数是否了解,由于平时使用较少,我仅简单说明了它能进行四则运算,用于动态计算&nbsp;CSS&nbsp;属性值,比如&nbsp;width:&nbsp;calc(100%&nbsp;-&nbsp;400px);&nbsp;可以配合实现响应式布局。2.&nbsp;项目与性能优化探讨当被问到&nbsp;项目中的性能优化经验&nbsp;时,我如实反馈:目前实习项目和个人项目经验较少,尚未深入接触性能优化模块。面试官没有追问,而是迅速切入算法题环节。3.&nbsp;算法与代码实现题目1:封装&nbsp;Promise&nbsp;重试函数要求实现一个函数,传入请求的&nbsp;Promise&nbsp;和请求次数,请求失败时自动重试,达到次数上限后不再发起请求。我给出如下代码:function&nbsp;retryPromise(promise,&nbsp;times)&nbsp;{&nbsp;&nbsp;let&nbsp;count&nbsp;=&nbsp;0;&nbsp;&nbsp;return&nbsp;new&nbsp;Promise((resolve,&nbsp;reject)&nbsp;=&amp;gt;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;run&nbsp;=&nbsp;()&nbsp;=&amp;gt;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;promise&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.then(resolve)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.catch((error)&nbsp;=&amp;gt;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(count&nbsp;&amp;lt;&nbsp;times&nbsp;-&nbsp;1)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count++;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reject(error);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp;run();&nbsp;&nbsp;});}题目2:实现对象深拷贝我先写出基础版本:function&nbsp;deepClone(obj)&nbsp;{&nbsp;&nbsp;if&nbsp;(typeof&nbsp;obj!==&nbsp;'object'&nbsp;||&nbsp;obj&nbsp;===&nbsp;null)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;obj;&nbsp;&nbsp;}&nbsp;&nbsp;let&nbsp;result&nbsp;=&nbsp;Array.isArray(obj)?&nbsp;[]&nbsp;:&nbsp;{};&nbsp;&nbsp;for&nbsp;(let&nbsp;key&nbsp;in&nbsp;obj)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(obj.hasOwnProperty(key))&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result[key]&nbsp;=&nbsp;deepClone(obj[key]);&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;}&nbsp;&nbsp;return&nbsp;result;}面试官进一步要求&nbsp;考虑边界情况,我补充说明:若对象属性为数组,需递归处理数组元素;若属性为函数、正则等特殊类型,需特殊处理。例如,对于函数可直接返回原函数,对于正则可创建新的正则实例。三、反问环节我向面试官提出疑问:“为什么在前端面试中如此看重&nbsp;CSS&nbsp;基础?”面试官耐心解答:“CSS&nbsp;是前端页面布局和视觉交互的基石,良好的&nbsp;CSS&nbsp;能力能确保页面高效渲染和兼容性,是支撑复杂业务开发的基础,所以我们会重点考察。”四、面试结果与总结幸运的是,面试结果显示&nbsp;已通过一面。回顾过程,坦诚承认自身不足并积极思考问题,以及在算法题中清晰的逻辑表达是关键。后续准备二面时,我将重点补足&nbsp;CSS&nbsp;知识盲区,积累项目实战经验,尤其关注性能优化相关技术,同时加强对&nbsp;JavaScript&nbsp;细节和边界场景的理解。这次面试也让我深刻认识到,扎实的基础和灵活的思维永远是技术面试的核心竞争力。
查看5道真题和解析
点赞 评论 收藏
分享
评论
3
47
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务