百度电商前端岗位
一面
主要以八股文为主,1、let、const和 var 的区别 2、基本数据类型 3、闭包 4、es6 新特性 5、promise相关内容,promise.all promise.race 分别是干什么的,6、网络缓存
编程题:1、大数相加 2、斐波拉次数列 3、100s倒计时,如何执行更加准时
关于1的一些问答如下
// console.log(a)
// const a={a:1}
// console.log(a)
// var a={a:1}
// const b =a
// console.log(a)
// const a ={a:1}
// console.log(b)
// var b = {a:1}
// const a ={a:1}
// const b=a
// b.a =2
// console.log(a)
二面
项目经历,性能优化,封装组件注意事项
编程题:10个请求,最多同时 3个进行,就是控制并发(ps:已经第三次遇到这个题了,我还是忘记了,9494)
还是写写这个题吧,挂在这里100遍,另外上次在数字马力长沙岗位的笔试题也遇到了
function mockFetch(param) {
return new Promise((resovle) => {
setTimeout(()=>{
resovle(param)
},2000)
});
}
function limitedRequest(urls,maxNum){
const pool = []
const initSize = Math.min(urls.length,maxNum)
for(let i=0;i<initSize;i++){
pool.push(run( urls.splice(0,1)))
}
function r (){
console.log('当前并发数:',pool.length)
if(urls.length===0){
console.log('并发请求已经全部发起')
return Promise.resolve()
}
return run(urls.splice(0,1))
}
function run(url){
return mockFetch(url).then(r)
}
// 全部请求完成的回调
Promise.all(pool).then(()=>{
console.log('请求已经全部结束')
})
}
// 函数调用
limitedRequest([1,2,3,4,5,6,7,8],3)
Over!!!
大概是这样,谢谢大家,我有录屏,有需要可以私信我