前端暑期实习_拼多多( 已OC )
拼多多 _ 3.16 _ 一面
做了好多题 -- 五六个答大题, 有的 大题里面 四五问小题,,具体忘了,,
写一下我记得的部分吧:
1. JSON.stringfy 不同参数的输出,这个大家有兴趣可以去看一下 -- 当时我是写错了的,然后没意识到
2. 场景题:
现在要请求一个外部的 js 资源,这个资源很大,也可能请求过程出错
拼多多 _ 3.21 _ 二面
// 第一题 : 每隔5秒输出一次 hellow world // 1. 刚开始想链式调用 then const p = Promise.resolve(); while (true) { p = p.then(() => { return new Promise((resolve, reject) => { setTimeout(() => { console.log('hellow world'); resolve(); }); }) }) } // 这个没有次数限制,所以这个写法是有问题的--对于后面有次数限制的可以用这个 // 2. 想了一下用 async 写 function fn() { return new Promise((resolve, reject) => { setTimeout(() => { console.log('hellow world'); resolve(); }); }) }; async function fun() { while(true) { await fn(); } } fun(); // 3. 面试官说可不可以不用promise -- 我用了递归 function dfs() { setTimeout(() => { console.log('hellow world'); dfs(); }, 5000); } dfs(); // 4. 面试官说加上次数呢 -- 加一个times呗 function dfs(times) { if (times) { setTimeout(() => { console.log('hellow world'); dfs(times - 1); }, 5000); } } dfs(10); // 5. 面试官说用户可以控制是否终止输出 -- 我用了全局变量 let times = true; function dfs() { if (times) { setTimeout(() => { console.log('hellow world'); dfs(); }, 5000); } } function stop() { times = false; } dfs(); // 6. 面试官说这样不安全 -- 那就闭包呗 function startConsole() { let times = true; function dfs() { if (times) { setTimeout(() => { console.log('hellow world'); dfs(); }, 5000); } } dfs(); return ()=> times=false; } // 然后这个题就结束了
// 第二题 // 和b站的实习题一样 请求五秒未完成则终止 // 提供两个模拟的 api api = ()=> {}; warnning = ()=> {}; // 实现: function timing() { return new Promise((resolve,reject)=>{ setTimeout(()=>{ reject(); },5000) }) } function apiTiming() { const arr = [api(),timing()]; Promise.race(arr).then(res=>{ console.log(res); }).catch(e=>{ warnning(e); }) }
拼多多 _ 3.29 _ 三面 ( 50 分钟 )
20 分钟实习经历
三道题( 两道简单算法 ,一道场景):
1. 螺旋数组 -- 当时刚睡觉起来头晕乎乎的,不过写出来了
2. 大数相加
3. 10000 条 dom 排序 ( 没想出来 -- 因为没有提示,不知道考察虚拟dom 还是 快速排序 -- 也有可能是 哈希函数什么的??)
(有知道标准答案的 友友 可以指点一下)
然后是聊天+反问
拼多多 _ 4.8 _ hr 面 ( 10 分钟 )
常规的 hr 面问题 ( HR 姐姐的声音挺好听,相当温柔)
总结:
总体来说多多 比较考察 代码能力,可能也以思路为主吧
整个流程是等了很久的,不过还好收到了 offer