前端暑期实习_拼多多( 已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