首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
TT4889
中国石油大学(华东) 安卓
发布于山东
关注
已关注
取消关注
@lxylxy_:
4.16 拼多多前端暑期实习二面(贼热乎被狠狠拷打版)
知道PDD面试官水平贼高,所以抱着学习和接受拷打的心态来面这场二面了,果然不出所料,问的很有深度,除去汗流浃背的感觉以外还是收获到很多东西的,复盘一下。基本全是场景题,考察设计,并且逐步深入完善。1.为什么选择前端2.有尝试过别的岗位吗,比如后端3.如果想要设置一个定时器,每隔五秒打印一个“hello world”如何实现(回答了setTimeout递归、setInterval、Promiose等方法)4.为什么setInterval定时可能不准确5.用递归的方式实现一下(这个写了个最基础的版本,很简单)function printHello() { console.log('Hello'); setTimeout(printHello, 5000);}printHello();6.这个setTimeout跟我设置一个setInterval这种方式去定时,在运行了很长一段时间之后会有什么差异(时间无限长,可能一年两年都行)? 复盘了一下,我觉得我回答的有问题,我是有提到setTimeout和setInterval的执行时机有区别的,但是好像在回答这个问题的时候没有get到面试官的意思。 应该是这样的:setTimeout是在你设置的时间之后才去执行要执行的语句(上一次的结束到下一次的开始是你delay的间隔),setInterval是不受你执行语句的耗时影响的(上一次的开始到下一次的开始是你delay的间隔)。所以重点应该是这个:当需要执行的语句耗时比较久的时候,可能会造成setInterval在某个时间点的某一次操作被跳过,大概是下面这个图:(表述可能不是很清楚,大家有兴趣可以看一下连接:https://blog.51cto.com/xuqin/949052)7.上面这种对精确性的影响在肉眼观察下是什么表现?8.对上面的代码优化,需要运行一段时间之后关闭定时器,怎么修改?let timer;function printHello() { console.log('Hello'); timer = setTimeout(printHello, 5000);}setTimeout(() => { clearTimeout(timer);}, 10000)printHello();9.上面这种没问题,如果换一种思路,不用全局变量来写呢?(这个就没做出来了,写了一半吧可能,但是有问题,这个问题想了很久)function printHello(delay) { console.log('hello'); let timer = setTimeout(printHello, 5000); function clearTimer() { if (timer) { clearTimeout(timer); console.log("clear"); } } setTimeout(clearTimer, delay);}printHello(10000);问题在于,使用局部变量之后,并不能够很好的清除定时器,并且我下来自己调试了一下,clear会打印两次。我觉得就是因为每次递归调用的时候都是独立的函数作用域,clear只能清除掉当前作用域的?希望有好兄弟指点,这个确实看了好久不太会。10.上面出现了两个问题,第一清除不掉,第二是不够灵活(在执行前就需要输入停止时间),想一下怎么修改。(这一块想了很久没想出来)11.第二个场景题:给了两个函数①const api = () => {},返回一个promise②const warning = () => {}发出一个警告现在需要对这两个函数进行封装,不需要改这两个函数,在调用api之后5s内如果没有拿到返回的promise,那就要调用warning。前面那个题没搞出来就影响后面的思路了,这个一开始想着怎么改这俩函数呢,后来说不用改,就写了下面的function handler() { let timer = setTimeout(() => { warning(); }, 5000) api().then(data => { clearTimeout(timer); console.log('success'); })} 12.上面的思路是对的,如果用原生的promise api来写怎么改进?(当时没想出来,说了用Promise.all或Promise.race。。其实应该用resolve、reject最好吧)复盘了一下大概是这个思路:function handler() { return new Promise((resolve, reject) => { api().then(() => { clearTimeout(timer); resolve(); }, () => { clearTimeout(timer); reject() }); let timer = setTimeout(() => { reject(warning()); }, 5000) })}function api() { return new Promise((resolve, reject) => { console.log("pending"); reject(); })}function warning() { console.log("warning");}handler().catch((err) => {});上面这种方法我试了一下应该没问题,可惜面试的时候没想出来13.Promise.all和Promise.race的话哪个更合适,区别是什么?14.websocket介绍一下,实际情况下什么时候用websocket?15.假设考虑一下降级方案,比如某些平台不支持websocket,怎么处理?16.短轮询和长轮询的区别?17.什么是虚拟DOM18.对比更新的时候什么时候会只更新属性,什么情况下会销毁重建?19.除了对比key以外,什么情况下会销毁重建? 其实想一下真的大部分是没有key的dom元素,但之前一直没想过这个问题,自己确实还是思考的太少了 回答到了比较key值,回答到了比较标签。具体如下: 可以看一下这篇博客,很全面:https://juejin.cn/post/7042221455618572296总的来说基础的方法都能答出来,但是深度不够,感觉是要凉了,继续努力啦
点赞 15
评论 5
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
昨天 15:56
上海交通大学 算法工程师
美团推荐算法一面
岗位名称:推荐算法面试时长:1h+自评分:7/10是否下一轮:待通知一、检索与排序在项目中使用的 BM25 原理是什么?相比 TF-IDF 改进在哪里?公式中每一项的含义是什么?(追问)k1 和 b 参数分别控制什么?如果 b=0 会发生什么?为什么在实际系统中要做混合检索?Sparse 检索和 Dense 检索的基本原理分别是什么?(追问)两种方式在长尾 Query 上的表现差异如何?Dense 检索中常见的相似度度量方式有哪些?为什么很多系统选择 Cosine 或 Inner Product?(追问)如果向量没有归一化,Inner Product 和 Cosine 的结果会有什么差异?在你...
技术必备题库
点赞
评论
收藏
分享
02-16 11:46
九州通医药集团_集团业务管培生(准入职员工)
步步高内推,步步高内推码
步步高实验学校 2026届校招启动啦【学校简介】东莞市步步高实验学校于 2023 年投入运营,占地 230 亩,是一所集幼儿园、小学、初中、高中于一体的十五年一贯制非营利性高端民办学校,学校全面实行小班化教学,学校师生比为 1:5;步步高教育专家团队由来自一流大学的国家课标专家、教育学家,来自著名学校的卓越校长,来自一线、有着丰富教学经验的著名特级教师,以及来自国家级教育媒体的教育策划专家共同组成,为步步高的课程、教学、管理奠定了坚实基础。【招聘岗位】• 幼儿园、小学部及初中部各学科类教师 & 国际教师,类别多多,等你pick! 【福利待遇】• 薪资:幼儿园老师年收入16万起 、中小学...
点赞
评论
收藏
分享
01-28 16:12
中南大学 Java
用了chatgpt后刷力扣上瘾
几年前还没有chatgpt的时候,刷题真的是很痛苦。刷不出来只能看题解,题解有几个问题:第一个是每次看的写题解的人都不一样,很难有一个统一的思路;第二个也是最重要的是,题解只提供了作者自己的思路,但是没有办法告诉你你的思路哪里错了。其实很少有错误的思路,我只是需要被引导到正确的思路上面去。所以传统题解学习起来非常困难,每次做不出来难受,找题解更难受。但是现在chatgpt能做很多!它可以这样帮助你 -1. 可以直接按照你喜欢的语言生成各种解法的题解和分析复杂度。2. 把题和你写的代码都发给它,它可以告诉你 你的思路到底哪里有问题。有时候我发现我和题解非常接近,只是有一点点🤏想错了。只要改这一点点就是最优解。信心倍增。3. 如果遇到不懂的题解可以一行一行询问为什么要这样写,chatgpt不会嫌你烦。有时候我觉得自己的range写错了,其实那样写也没错,只是chat老师的题解有一点优化,这个它都会讲清楚。4. 它可以帮你找可以用同类型解法来做的题。然后它可以保持解法思路不变,用一个思路爽刷一个类型的题。如果题目之间思路又有变化,它会告诉你只有哪里变了,其他的地方还是老思路。5. 它也可以直接帮你总结模板,易错点。经过chat老师的指导,我最大的改变是敢刷题了。之前刷题需要先找某一个人写的算法题repo,然后跟着某一个人他的思路刷他给的几个题。如果想写别的题,套用思路失败了,没有他的题解,也不知道到底哪里错了;看别人的题解,思路又乱了。这个问题在二分查找和dp类型的题里面特别常见。但是现在有chat老师,他会针对我的代码告诉我我哪里想错了,应该怎么做;还按照我写代码的习惯帮我总结了一套属于我的刷题模板。每天写题全是正反馈!
明天不下雨了:
那我建议可以用 chatgpt atlas 或者 dia 去刷,也可以用 chrome 加个 ai 插件去刷
左边刷题右边 chat 效果很好
AI时代的工作 VS 传...
点赞
评论
收藏
分享
01-14 21:22
字节跳动_后端开发(实习员工)
牢大复活了
点赞
评论
收藏
分享
02-19 14:40
南京传媒学院 全栈开发
Trae配置Mysql本地Mcp
mysql-mcp-wrapper.py import os import sys import asyncio os.environ["MYSQL_HOST"] = "localhost" os.environ["MYSQL_PORT"] = "3306" os.environ["MYSQL_USER"] = "root" os.environ["MYSQL_PASSWORD"] = "root" os.environ["M...
vibe coding
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
嵌入式应届生春招怎么准备——从零到拿 Offer 的系统攻略
773
2
...
关于租房
406
3
...
27届实习近一年的年度经历和总结
389
4
...
HTTP 和 HTTPS 区别
368
5
...
agent实习都干什么?prompt设计
257
6
...
得力嵌入式工程师 二面 面经
206
7
...
美团推荐算法一面
203
8
...
大三无实习
192
9
...
27前端双非找实习
182
10
...
Redis 的 Zset底层是怎么实现的?
173
创作者周榜
更多
正在热议
更多
#
牛客新年AI问运
#
13776次浏览
168人参与
#
牛友们,签完三方你在忙什么?
#
137353次浏览
993人参与
#
牛客AI体验站
#
17849次浏览
302人参与
#
你最讨厌面试被问什么
#
1143次浏览
23人参与
#
担心入职之后被发现很菜怎么办
#
282473次浏览
1185人参与
#
如何缓解入职前的焦虑
#
258831次浏览
1451人参与
#
校招第一份工作你干了多久?
#
139354次浏览
609人参与
#
牛客租房专区
#
151360次浏览
1479人参与
#
秋招开始捡漏了吗
#
229447次浏览
1044人参与
#
秋招投递攻略
#
268776次浏览
2553人参与
#
九月了,是考研还是就业?
#
89198次浏览
556人参与
#
搜狐工作体验
#
4114次浏览
29人参与
#
机械人求职现状
#
33623次浏览
297人参与
#
这份实习,有没有动摇过你的职业方向?
#
2103次浏览
34人参与
#
我是XXX,请攻击我最薄弱的地方
#
61767次浏览
409人参与
#
用友工作体验
#
18082次浏览
151人参与
#
你的工资什么时候发?
#
57461次浏览
355人参与
#
今年秋招还有金九银十吗
#
75086次浏览
506人参与
#
你的实习什么时候入职
#
348065次浏览
2291人参与
#
职场吐槽大会
#
326181次浏览
2249人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务